我有一个名为“test.py”的文件,它使用简单的代码导入argparse:
import argparse
parser = argparse.ArgumentParser(description='Description')
parser.add_argument('-e','--event', help='event', required=True)
args = vars(parser.parse_args())
myArgument = args['event']
如果我用调用它,则从Windows获取
python "test.py" -e hello
它工作正常,但如果我尝试直接用
调用它test.py -e hello
它正在调用python但我得到一个错误“-e / - event is required” - 即它没有传递参数。
我在Windows中的关联设置为:
assoc .py
.py=Python.File
ftype Python.File
Python.File = "C:\Python27,python.exe" "%1" %*
似乎无法解决这个问题,因为我让它在另一台计算机上运行,所以我猜我有一些路径或环境变量没有设置好吗?
提前致谢
答案 0 :(得分:2)
我认为您的文件关联存在错误。 我想这个:
Python.File = "C:\Python27,python.exe" "%1" %*
应该是:
Python.File = "C:\Python27\python.exe" "%1" %*
(将,
更改为\
)
...如果这只是一个错字,那么this问题和答案可能会引起关注。
基本上,这些关联并不一定是运行程序时调用的。 (即。我基本上和你有相同的关联,但如果我运行一个python程序,如:" test.py -e hello&#34 ;, progam test.py只是在我的编辑器中打开 - 它没有&# 39;实际上运行python程序。)
您可能希望同时查看:
。
答案 1 :(得分:2)
ftype
显示HKEY_LOCAL_MACHINE\Software\Classes
中的内容,但此注册表分支中的值可能已被HKEY_CURRENT_USER\Software\Classes
中的值覆盖。看看reg query HKCU\Software\Classes\Python.File\shell\open\command /ve
的输出是什么。我猜您的问题是由于此注册表项中缺少%*
片段引起的。