例如,使用 -m
进行 pdb 和事后调试,您可以这样做:
python -m pdb script.py arg1 --kwarg
(例如,arg1
和 kwarg
是使用 sys.argv
模块从 argparse
解析出来的)。
可以使用 pip/setuptools 的入口点创建 CLI 工具:
setup(
...
entry_points={
"console_scripts": [
"toolname = my_project.script:main"
]
},
)
现在安装 pip install my_project
后,可以使用 toolname
代替 python /path/to/script.py
。是否可以将参数直接传递给 python - 比如 -m
来调用 pdb
?
编辑:
与 python setup tools console_scripts with arguments 不同,我知道如何将参数传递给脚本,而且我正在寻找如何将参数传递给 python 本身。
How to start debugger with an entry_point script 中使用的 python -m pdb $(which myscript)
方法非常好,但它仅在脚本执行时实际调用 main()
时才有效(脚本可能来自第三方库)。
python -c "import pdb, pkg_resources; pdb.run('pkg_resources.load_entry_point(\'mylocalpkg\', \'console_scripts\', \'myscript\')()')"
支持更多脚本和平台,但我不确定它是否适用于 -m pdb
以外的其他 Python 选项。