从命令行配置python模块

时间:2019-01-31 16:27:27

标签: python profiling cprofile

我有一个python项目,其中使用-m标志将应用程序作为模块执行。像这样:

python -m apps.validate -i input.mp4

现在,我想使用命令行对其进行概要分析。因此,内联示例建议将cProfile本身调用为模块。但是,我无法执行以下操作:

python -m cProfile apps.validate -i input.mp4

但是,这将导致错误“没有这样的文件或目录”。由于相对的导入,我不能仅转到apps目录并启动validate.py

是否可以在命令行上对模块进行概要分析?

1 个答案:

答案 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