在Windows 7中,如果python(2.7.10)脚本已与Python解释器关联,并且扩展已在PATHEXT(窗口)列表中注册,那么当您启动脚本时,可以只键入:
MyPythonScript
而不是传统的:
python MyPythonScript.py
哪个好 - 但不再(显示)接受命令行参数。例如,请考虑以下两个带有命令行参数的脚本示例。首先是传统方式:
>>>> python echo_input.py --help
usage: echo_input.py [-h] [-s SIMPLE_VALUE] [-c] [-t] [-f] [-a COLLECTION]
[-A] [-B] [--version]
optional arguments:
-h, --help show this help message and exit
-s SIMPLE_VALUE Store a simple value
-c Store a constant value
-t Set a switch to true
-f Set a switch to false
-a COLLECTION Add repeated values to a list
-A Add different values to list
-B Add different values to list
--version show program's version number and exit
工作得很好,但如果调用替代方式:
echo_input --help
simple_value = None
constant_value = None
boolean_switch = False
collection = []
const_collection = []
似乎不再识别命令行参数。仅供参考:以上脚本(默认情况下)打印出这5行,如果它运行了任何参数,如下所示:
>python echo_input.py
simple_value = None
constant_value = None
boolean_switch = False
collection = []
const_collection = []
因此,似乎失去了获取命令行参数的能力,例如一个简单的标志帮助。
对于这个问题的答案和解决方法我都很困惑,非常感谢任何建议或经验。
提前感谢您的时间......: - )
灵感来源:
答案 0 :(得分:2)
这是否有效(感谢@eryksun提供建议的修复程序 - 我没有Windows机器了吗?)
C:\>ftype Python.File="C:\Python27\python.exe" "%1" %*
C:\>assoc .py=Python.File
这会在HKLM\SOFTWARE\Classes
中添加/修改ProgId。根据当前配置,您可能还必须在资源管理器的“打开方式”对话框中选择此ProgId(Python.File
)。