我有一个python项目,其中使用-m
标志将应用程序作为模块执行。像这样:
python -m apps.validate -i input.mp4
现在,我想使用命令行对其进行概要分析。因此,内联示例建议将cProfile本身调用为模块。但是,我无法执行以下操作:
python -m cProfile apps.validate -i input.mp4
但是,这将导致错误“没有这样的文件或目录”。由于相对的导入,我不能仅转到apps
目录并启动validate.py
。
是否可以在命令行上对模块进行概要分析?
答案 0 :(得分:1)
也许可以通过在apps.validate中添加一些代码或创建新脚本并导入apps.validate来在python脚本中使用cProfile,而不是在外壳中运行cProfile。也许下面有错别字:)
import cProfile
import sys
def run_validate(args):
# run your apps.validate code with shell arguments args here
pass
if __name__ == '__main__':
pr = cProfile.Profile()
pr.enable()
run_validate(*sys.argv)
pr.disable()
pr.print_stats()
然后只运行原始脚本:python -m apps.validate -i input.mp4