允许在CLI之外运行的Python脚本不接受命令行参数
在windows 7中,如果python(2.7.10)脚本已与python解释器关联,并且扩展已在PATHEXT(windows)列表中注册,则启动脚本时,只需键入:允许在CLI之外运行的Python脚本不接受命令行参数,python,windows,python-2.7,argparse,Python,Windows,Python 2.7,Argparse,在windows 7中,如果python(2.7.10)脚本已与python解释器关联,并且扩展已在PATHEXT(windows)列表中注册,则启动脚本时,只需键入: MyPythonScript 而不是传统的: python MyPythonScript.py 这很好,但是它不再(似乎)接受命令行参数了。例如,考虑下面两个示例,这些脚本采用命令行参数。首先是传统方式: >>>> python echo_input.py --help usage: echo_i
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 = []
因此,它似乎已经失去了接受命令行参数的能力,例如一个简单的帮助标志
我对这个问题的答案和解决办法都感到困惑,如果有任何建议或经验,我将不胜感激
提前感谢您抽出时间……:-)
灵感来源:
:
这行得通吗(感谢@eryksun建议的修复程序——我再也没有Windows机器了)
这将在
HKLM\SOFTWARE\Classes
中添加/修改ProgId。根据当前配置,您可能还必须在浏览器的“打开方式”对话框中选择此ProgId(Python.File
)。这不是argparse问题。这是一个sys.argv
中有什么的问题。
C:\>ftype Python.File="C:\Python27\python.exe" "%1" %*
C:\>assoc .py=Python.File