如何在不通过 '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帮助了我
我想运行一个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帮助了我