python - 了解 Windows 上的 Python 3 argparse()

标签 python argparse python-3.4

我显然需要 argparse 方面的帮助。来自 3.4 manual ,如果我输入

import argparse
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('-f', '--foo')
parser.add_argument('bar')
parser.parse_args()

在命令行上,将此代码保存到 test.py 中,然后运行 ​​

test.py bar

我期待着我的提示回来,但我得到了

usage: PROG [-h] [-f FOO] bar
PROG: error: the following arguments are required: bar

我需要做什么才能使 test.py 接受非可选参数? 顺便说一句,我在 Windows 8.1 上运行此代码,当我在 Mac 上运行相同的代码时,我收到提示,但没有按预期输出脚本。这意味着它与 Windows 有关。

编辑:我可以在交互式 session 中尝试此操作,但它也无法正确运行。

编辑:是的 - sys.argv 没有附加参数。我认为这与文件关联有关。安装时,Parallels 使用 Python 的 Python Launcher,这意味着它尝试在我的 Mac 主机上运行脚本。我编辑了与本地 python 二进制文件的关联,但现在是这个。我尝试破解注册表来提供帮助,但它已经正确设置为 "c:\windows\py.exe""%1"%*

最佳答案

好的,我知道发生了什么事。 我将 .py(以及 .pyc、.pyo、.pyw)的文件关联设置为显式 python 二进制路径。即使您破解了注册表,这也不起作用。 返回文件关联(“PC 设置”>“搜索和应用程序”>“默认”(滚动到底部)>“按扩展名显示的文件”>滚动到 .py)并单击 .py 扩展名,选择“Python Launcher for Windows(控制台)”,然后选择“我的脚本”表现符合预期。

归根结底就是选择正确的启动器。

关于python - 了解 Windows 上的 Python 3 argparse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615114/

相关文章:

python - Matplotlib:在另一个轴面板上方绘制一条线

python - 按字母顺序排列的最长字符串

python - 如果没有传递参数,如何使参数默认?

python-requests - 无法使用 Python3 模块请求 POST 到 Grafana

python - 无法从命令行访问 NamedTemporaryFile

python - 在多种条件下合并来自多个数据帧的数据

python - 文件作为可选参数

python - ArgParse Python 模块 : Change default argument value for inherted argument

python - Python 3.4 的 py2exe 错误 : Errno2 , 缺少文件 'run-py3 .4-win32.exe'

kivy - PyInstaller Kivy ClockApp 示例问题