Windows无法将parameter passing给Python脚本

在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\py_script.py 1 2 

产量

 first arg is 1 second arg is 2 

但我的Win7平台上

 no args 

如果我做

 d:\path\python py_script.py 1 2 

我明白了

 first arg is 1 second arg is 2 

我怎样才能使我的Win7环境按预期行事?

一些细节:
win7是64位。
在win7上的py2.6.6,在winXP上的py 2.6.4。

Solutions Collecting From Web of "Windows无法将parameter passing给Python脚本"

我在Win 7上使用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页面可以提供一些更详细的背景。

http://technet.microsoft.com/en-us/library/bb490912.aspx

基于jtp的答案。
那么我搞砸了一下注册表。

这是我认为的步骤:

  1. assoc .py = Python.File

  2. 通过win explorer挑选一个.py文件,右键 – > x64 – >打开方式>浏览到c:\ Python26 \ python.exe,选择'always open with this ..'框。 这实际上改变了reg值

    HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\ FileExts.py \ UserChoice

    Python.File

  3. 将HKEY_CLASSES_ROOT \ Python.File \ shell \ Open \ Command设置为“C:\ Python26 \ python.exe”“%1”%2%3%4%5%6%7%8%9

注意:从以前的经验,我敢肯定事情会混淆混合版本。 卸载/重新安装应该是要走的路。 顺便说一句,我不想​​这样做,因为所有的软件包,包括我从源代码构建的软件都是一团糟。

我知道这不能回答你的问题,但python py_script.py是执行Python脚本的标准方式。