jeudi 9 avril 2015

Executable Python Script not take sys.argv in Windows

I have two computers with Windows, and I just found that on one of them, if I ran python code directly, like:



test_args.py input1 input2


Python will not recognized the input I gave, but this works:



python test_args.py input1 input2


I tried the code:



import sys

print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)


And the first way(test_args.py) returns:



Number of arguments: 1 arguments.
Argument List: ['D:\\Test\\args\\test_args.py']


While the sceond way (python test_args.py input1 input2) returns:



Number of arguments: 3 arguments.
Argument List: ['D:\\Test\\args\\test_args.py', 'input1', 'input2']


Any idea on what this could happen? This issue only happens in one of my computers, both have same version of Windows.


Thanks!


SOLVED: I search in regedit keyword "python" and found two keys missing %* after "C:\Python27\python.exe" "%1":


Computer\HKEY_CLASSES_ROOT\Applications\python.exe


Computer\HKEY_CLASSES_ROOT\py_auto_file\shell\open\command


And .py is associated with py_auto_file even though I tried assoc .py Python.File


Changing the two keys fixed this issue, thanks!


Aucun commentaire:

Enregistrer un commentaire