Lorsque vous exécutez un script sans taper "python" devant, vous devez savoir deux choses sur la façon dont Windows invoque le programme. La première est de savoir quel type de fichier Windows pense qu'il s'agit :
C:\\>assoc .py
.py=Python.File
Ensuite, vous devez savoir comment Windows exécute les choses avec cette extension. Elle est associée au type de fichier "Python.File", et cette commande montre ce qu'elle va faire :
C:\\>ftype Python.File
Python.File="c:\\python26\\python.exe" "%1" %\*
Ainsi, sur ma machine, lorsque je tape "blah.py foo", il exécutera cette commande exacte, sans que les résultats soient différents de ceux que j'aurais obtenus si j'avais tapé moi-même la commande complète :
"c:\\python26\\python.exe" "blah.py" foo
Si vous tapez la même chose, y compris les guillemets, vous obtiendrez des résultats identiques à ceux obtenus lorsque vous tapez simplement "blah.py foo". Vous êtes maintenant en mesure de résoudre le reste de votre problème par vous-même.
(Ou bien, postez des informations plus utiles dans votre question, comme des copies copiées-collées de ce que vous voyez dans la console. Notez que les personnes qui font ce genre de choses voient leurs questions votées, et elles obtiennent des points de réputation, et plus de personnes sont susceptibles de les aider avec de bonnes réponses).
Apporter des commentaires :
Même si assoc et ftype affichent les informations correctes, il peut arriver que les arguments soient supprimés. Ce qui peut aider dans ce cas est de fixer directement les clés de registre pertinentes pour Python. Définissez le
HKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command
clé pour :
"C:\Python26\python26.exe" "%1" %*
Probablement, auparavant, %*
a disparu. De même, l'ensemble
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
à la même valeur. Voir http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scriptssur les fenêtres/
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
Le chemin du registre peut varier, utilisez python26.exe
o python.exe
ou celui qui se trouve déjà dans le registre.
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
3 votes
Poster un extrait de code pourrait nous aider à vous aider.
0 votes
L'homme sans boule de cristal a déjà donné une solution=) print sys.argv[1] produit cette erreur.
0 votes
Si vous avez plusieurs versions de Python installées, vous pouvez avoir besoin de ceci stackoverflow.com/questions/1934675/ .
0 votes
Indiquer manuellement à python d'exécuter mon script à partir du registre : " C:\Python27\python.exe " " C:\Python27\tpt.py " "%1"`