Passer des arguments à un script Python: association de fichier non trouvée. Windows 7 sur iMac


0

Si j'exécute mon script par:

C:\Windows\System32>python C:\Code\Test.py XXX

Cela prend l'argument mais si j'exécute le script par:

Test.py XXX

erreur se produit: IndexError ...

Donc, les arguments ne passent pas au script. J'ai défini les associations dans Windows pour ouvrir les fichiers .py avec Python2.6. L'exécution de programmes python à partir des fichiers de commande fonctionne bien. Cependant, si je tape:

C:\Windows\System32>assoc .py
File association not found for file .py

De même:

C:\Windows\System32>ftype Python.File                                   
File type 'Python.File' not found or no open command associated with it.

L’environnement PATH est correctement défini: C: \ Python26 et C: \ Python26 \ Scripts. Je me suis assuré que PATHTEXT contient le fichier .PY. Je peux exécuter mes scripts, y compris iPython, easy_install, etc. sans problèmes.

J'ai lu sur des problèmes similaires ici dans stackoverflow. Une solution suggérée consiste à accéder à RegEdit, à rechercher toutes les occurrences de Python26 et à vous assurer que le champ de données de la valeur contient "C: \ Python26 \ python.exe" "% 1"% * à la place de "C: \ Python26 \ python.exe ""% 1 "le cas échéant.

Je suis presque sûr d'avoir tout fait et le problème persiste. Je ne sais pas quoi faire d'autre, et j'apprends toujours beaucoup de ces choses au fur et à mesure, donc je ne suis pas un expert et je ne sais pas quelles commandes saisir pour tester.

J'utilise Windows 7 sur un iMac (Mac OS X version 10.7.3) en parallèle, avec 16 Go de RAM. J'utilise Windows sur un iMac parce que je suis nouveau sur Mac et que je ne me sens toujours pas à l'aise avec toutes les commandes Mac. Cependant, je commence à soupçonner que le problème ne vient pas de Python ou de Windows 7, mais de Parallèle.

Merci beaucoup pour votre aide


Je ne vois aucune question spécifique. Pouvez-vous reformuler? Qu'est-ce qui ne fonctionne pas exactement? quelle erreur avez-vous? vous ne voulez associer .pyà python.exe?
KurzedMetal

Je vous remercie. J'ai reformulé la question. Fondamentalement, les arguments ne sont pas transmis au script. À partir de l'invite de commande, il semble qu'il n'y ait pas d'association aux fichiers .py, mais dans PATH et PATHTEXT, je peux voir qu'il existe une association.

Réponses:


2
>assoc .py
.py=Python.File

>ftype Python.File
Python.File="C:\Python27\python.exe" "%1" %*

Voici comment cela a été configuré dans ma boîte par le programme d’installation de Python.

Donc, fondamentalement, il suffit de courir

>assoc .py=Python.File
>ftype Python.File="C:\Python26\python.exe" "%1" %*

Dans une console surélevée, redémarrez Windows au cas où, puis réessayez.


Je vous remercie. Je ne vois rien de cela quand je lance assoc ou ftype. C'est mon problème: il n'y a pas de reconnaissance de l'association dans le shell, donc aucun argument ne peut être passé, et qui sait quoi d'autre.

1
Il suffit de lancer assoc .py=Python.Fileet ftype Python.File="C:\Python26\python.exe" "%1" %*dans une console surélevée, de redémarrer Windows au cas où, et d’essayer à nouveau. Y at-il une raison pour laquelle vous exécutez 2.6 au lieu de 2.7?
KurzedMetal

Je m'excuse pour mon ignorance, mais qu'est-ce qu'une console surélevée? Je vais essayer votre suggestion après avoir appris à ce sujet. J'utilise Python26 car certaines bibliothèques que j'utilise ou que je prévois d'utiliser ne fonctionnent qu'avec la version 2.6. Cependant, je n’utilise pas la dernière version (2.6.8), car j’ai pu trouver les fichiers binaires officiels étaient la version 2008 (2.6.6) et je ne sais pas comment installer la version 2.6.8 (2012) à partir du code source. Si je ne parviens pas à faire fonctionner la version 2.6.6, je suppose que je vais devoir la désorganiser, passer à la version 2.7 et trouver une solution de contournement. Merci!

1
une console surélevée dans w7 est une console avec des droits d'administrateur. allez dans le bouton "Démarrer", tapez "cmd" dans le champ de recherche, et appuyez sur ctrl + maj + entrée, et le contrôle de compte d'utilisateur affichera une fenêtre vous demandant si vous souhaitez exécuter la commande (une console Windows) en mode élevé. .
KurzedMetal

Merci KurzedMetal! La commande dans le deuxième commentaire, effectuée à partir d'une console surélevée, a résolu mon problème. Cheers
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.