pip/setuptools 控制台脚本可以将 python 选项传递给 python 本身吗?

时间:2021-06-04 03:50:36

标签: python pip argparse setuptools pdb

例如,使用 -m 进行 pdb 和事后调试,您可以这样做:

python -m pdb script.py arg1 --kwarg

(例如,arg1kwarg 是使用 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 选项。

0 个答案:

没有答案