Windows无法将参数传递给python脚本
在py_script.py中:Windows无法将参数传递给python脚本,python,windows,windows-7,command-line,Python,Windows,Windows 7,Command Line,在py_script.py中: import os import sys l = len(sys.argv) if l == 1: print 'no args' else: if l > 1: print 'first arg is %s'%sys.argv[1] if l > 2: print 'second arg is %s'%sys.argv[2] 现在进入命令行,在我的winXP平台上: d:\path\p
import os
import sys
l = len(sys.argv)
if l == 1:
print 'no args'
else:
if l > 1:
print 'first arg is %s'%sys.argv[1]
if l > 2:
print 'second arg is %s'%sys.argv[2]
现在进入命令行,在我的winXP平台上:
d:\path\py_script.py 1 2
屈服
first arg is 1
second arg is 2
然而在我的Win7平台上,我得到了
no args
如果我这样做
d:\path\python py_script.py 1 2
我明白了
如何使我的Win7环境按预期运行
一些细节:win7是64位。
win7上的py2.6.6,winXP上的py2.6.4。我知道这并不能回答您的问题,但
python py_script.py
是执行python脚本的标准方式。我在win7上使用的是2.7.1
如果希望仅通过文件扩展名调用Python程序,则应检查文件类型关联和命令行参数。我在Windows上安装/重新安装多个版本的Python时遇到问题
C:\dv>assoc .py
.py=Python.File
C:\dv>ftype Python.File
Python.File="C:\Python27\python.exe" "%1" %*
这个TechNet页面可以提供一些更详细的背景信息
基于jtp的回答。我把注册表搞砸了 这就是我认为的步骤:
至
Python.File
卸载/重新安装应是可行的方法。顺便说一句,我不想经历这些,因为所有的软件包,包括我从源代码构建的软件包,都会一团糟。在Win7和2.7.1上对我有效。Windows在python中的argv解析非常糟糕:(祝贺你解决了这个问题。最近在一台Win32位机器上又出现了这个问题。解决方案是一样的,这次是在HKCU\Software\Classes\py_auto_file\shell\open\command中。通过搜索注册表中的c:\python26\python.exe项来实现的。我还更改了HKEY_Classes\u ROOT\py_auto_file\shell\open\command添加%*从而:C:\Python27\python.exe“%1”*
C:\dv>assoc .py
.py=Python.File
C:\dv>ftype Python.File
Python.File="C:\Python27\python.exe" "%1" %*