从Windows命令行运行Python脚本,参数未通过
我有一堆用Python编写的脚本。我运行它们从Windows命令提示符像从Windows命令行运行Python脚本,参数未通过
c:> my_script.py arg1 arg2 arg3
这个作品在每一台计算机,自多年前每一个Windows版本。刚刚它已经在我的Windows 7系统上崩溃了。脚本被加载并执行。但是没有任何论据被传递到脚本中。
为了说明这一点,我有一个剧本叫py_echo.py:
from pprint import pprint as pp
import sys
if __name__ =='__main__':
pp(sys.argv)
然后我用参数A,B,C执行它。他们都没有通过。
c:\Python27\Lib\site-packages>py_echo.py a b c
['C:\\0\\usr\\bin\\py_echo.py']
如果我运行python.exe明确的参数传递正确
c:\Python27\Lib\site-packages>python.exe c:\0\usr\bin\py_echo.py a b c
['c:\\0\\usr\\bin\\py_echo.py', 'a', 'b', 'c']
它之前工作。在我从PC上卸载了一堆老版本的Python解释器和模块后,它才开始崩溃。重新安装Python没有帮助。我想知道我能做些什么来解决这个问题?
我已经变得非常依赖我多年来建立的脚本。我觉得,当他们打破:(
答案移动到SO(而非Jon's answer链接):
修改以下两个REGIST这一切的外观极好文章中描述里斯,这样的参数沿到Python传递:
HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
添加%*
现有"C:\PythonXX\python.exe" "%1"
,使现在的关键是这样的:"C:\PythonXX\python.exe" "%1" %*
。
来源:http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/
我有同样的问题在Windows 7/Python和eventualy发现我必须树立正确的文件关联,并通过注册表编辑器更新两个注册表项非常残疾人。
这是
http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/
你有没有尝试过这样的:http://stackoverflow.com/questions/2640971/windows-is-not-passing-command-line-arguments-to-python-programs-executed-from -t –
谢谢大家。我发现Perl上的另一个线程指向相同的解决方案。 http://stackoverflow.com/questions/444388/how-can-i-pass-command-line-arguments-via-file-association-in-vista-64 –
同样适用于Python:http://stackoverflow.com /问题/ 2437167 /问题 - 运行 - Python的脚本,在命令提示符特异性-用的命令行。 (尽管解决方案在Windows 7上不起作用)。 – bavaza