我有一个我这样称呼的 Python 模块
python -m foo.bar arg1 -a foo --some-arg=10
在bar.py
模块内部,我需要查询用于调用模块的命令。例如,get_raw_terminal_command()
将返回"python -m foo.bar arg1 -a foo --some-arg=10"
.
我已经看到几个帖子建议import sys; sys.argv
但sys.argv
以多种方式失败。
sys.argv
返回foo/bar.py
文件的完整路径。我需要原始命令用于调试目的,调用python /path/to/foo/bar.py
与调用不同python foo.bar
在我的生产用例中,sys.argv
返回['-c']
而不是任何 Python 模块的名称或路径。我仍在解决为什么会发生这种情况,但我已经说明了为什么sys.argv
这不是我想要的。
另一个流行的解决方案是用于argparse
重建命令行输入,但我无法使用它,因为我无法控制 Python 代码的调用方式。解决方案必须是通用的。
有谁知道如何从 Python 脚本中获取用于调用 Python 脚本的原始命令?如果可能,该解决方案应与 Windows 兼容。
慕标琳琳
MMTTMM
相关分类