在 Windows 上直接调用 Python 脚本时 sys.argv 中没有参数

MrL*_*eeh 4 python

我的路径中有一些方便的 python 脚本,我想通过直接调用它们来运行它们,例如myscript.py argument1. 但参数不会出现在sys.argv.

测试.py

#!python3.5

import sys
print(sys.argv)
Run Code Online (Sandbox Code Playgroud)

因此,当我直接调用这个小脚本时,我无法通过 访问给定的参数sys.argv

c:\Users\MrLeeh\bin>test.py hello
['C:\\Users\\MrLeeh\\bin\\test.py']
Run Code Online (Sandbox Code Playgroud)

当我使用python命令显式调用它时,我可以访问我的参数。

c:\Users\MrLeeh\bin>python test.py hello
['C:\\Users\\MrLeeh\\bin\\test.py', 'hello']
Run Code Online (Sandbox Code Playgroud)

我问自己这样做的原因是什么,以及在使用直接调用时如何访问参数。我的 python 文件与py.exe.

小智 6

也许您错过了一些注册表配置。

HKEY_CLASSES_ROOT\Python.File\shell\open\command 中保存了一个注册表:

[HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command]
@="\"C:\\Python27\\python.exe\" \"%1\" %*"
Run Code Online (Sandbox Code Playgroud)

上面的注册表设置添加了“%*”以将所有参数传递给 python.exe