在具有入口点的应用程序上使用 cProfile

Posted

技术标签:

【中文标题】在具有入口点的应用程序上使用 cProfile【英文标题】:Using cProfile on application with entry point 【发布时间】:2019-06-07 09:15:13 【问题描述】:

我知道 cProfile 可以这样使用

python -m cProfile script.py

但假设我有一个在 setup.py 中定义了 entry_point 的打包应用程序(pip-installable),这样我就可以从终端调用该应用程序,而无需显式使用任何 .py 文件。在这种情况下如何使用 cProfile?

【问题讨论】:

【参考方案1】:

我在这个thread找到了答案:

python -m cProfile $(which application)

【讨论】:

$(which application) 只是您的入口点脚本(带路径)。 @MarcinOrlowski 是的,我不知道这就是我必须用 cProfile 调用的内容。 你没有。如果您知道路径,则只需按照您在问题中提到的方式放置即可。 $(...) 所做的是调用 which 返回 application 的完整路径(如果在 PATH 上)。【参考方案2】:

如果有人在 CLI 中使用 click 怎么办? 它似乎不适合我。

更新: 实际上 cProfile 需要 ma​​in,并添加标准

if __name__=="__main__":
    cli()

到 mymodule/cli.py 程序,解决了这个问题。

【讨论】:

以上是关于在具有入口点的应用程序上使用 cProfile的主要内容,如果未能解决你的问题,请参考以下文章

如何使用具有多个页面和入口点的 React 和 TypeScript 设置 chrome 扩展?

在 Python 中的文件列表上运行 cProfile

python模块上的cprofile

具有多个入口点的 Webpack watch() - 为未更改的文件发送捆绑包?

应用引擎入口点的目的是啥?

如何在 Mac OS X 上构建包含入口点的 C 程序?