如何在不通过 'python' 的情况下使用 argparse?

How to use argparse without passing 'python' in CMD?

我想运行一个Python脚本,它使用argparse,而不必在开头键入python

我做什么

$ python file.py --arg value

我想要的

$ file --arg value

我已经通过将文件放入添加到 PATH 变量的文件夹中完成了第一部分,但是 argparse 无法正常工作,因为我输入:

$ file --arg val

它说 arg 不能是 None 即使我传入它(它无法读取我在这样调用时传递的参数,即使它在我时运行良好使用 $ python file.py --arg val


我希望这是有道理的。

所以问题的解决方案很简单,但很难做到。

问题出在注册表中。

执行这 2 个命令是第一步:

assoc .py=py_auto_file
ftype py_auto_file="C:\Anaconda\python.exe" "%1" %*

然后将位于键 HKEY_CLASSES_ROOT\py_auto_file\shell\open\command 的注册表值 default 编辑为 "C:\Python36\python.exe" "%1" %*

然后将 .PY 添加到 PATHEXT

注意

Python36 替换为您的 python 版本(如果不同,也替换路径)。

希望这对人们有所帮助 ;)


感谢@Lycopersicum 在下面的评论中链接了这个 Question,这帮助我得到了答案。

This link帮助了我