我有一个我这样称呼的 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
随时随地看视频慕课网APP
相关分类