我有一个Python项目,我使用-m
标志将应用程序作为模块执行。所以大概是这样:
python -m apps.validate -i input.mp4
现在,我想要使用命令行对其进行分析。因此,内联示例建议将cProfile本身作为模块调用。但是,我不能像下面这样做:
python -m cProfile apps.validate -i input.mp4
然而,这会导致错误信息“没有这样的文件或目录”。我不能仅仅进入"apps"目录并启动"validate.py",因为存在相对导入。
有没有一种方法可以在命令行上对一个模块进行分析?
cProfile
的在线文档中,有一个“版本 3.7 中的新内容”提示,其中提到该版本中添加了-m
选项。这是 Python 解释器自带的-m
选项之外的另一个选项。这意味着如果你使用的是 Python 3.7+,那么类似于python -m cProfile -m apps.validate -i input.mp4
的命令应该可以工作。 - martineauprofile
(和cProfile
)的源代码,了解如何添加对新-m
选项的支持。甚至可能可以将其版本与早期版本的Python解释器一起使用(取决于进行了哪些其他更改)。 - martineau