gpt4 book ai didi

python - cProfiling 具有相对导入的模块

转载 作者:太空狗 更新时间:2023-10-29 21:59:44 26 4
gpt4 key购买 nike

我在 mymodule 中有这些文件

mymodule
├── config.py
├── __init__.py
└── lib.py

有了这个简单的内容:

# config.py
NAME = "Julius Cesar"

# lib.py
from .config import NAME

def get_name():
return NAME

我可以使用 python -m mymodule.lib

运行它(没有任何反应)

但我无法分析它:

» python -m cProfile mymodule/lib.py 
2 function calls in 0.000 seconds

Ordered by: standard name

ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 lib.py:1(<module>)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}


Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/lib/python2.7/cProfile.py", line 199, in <module>
main()
File "/usr/lib/python2.7/cProfile.py", line 192, in main
runctx(code, globs, None, options.outfile, options.sort)
File "/usr/lib/python2.7/cProfile.py", line 49, in runctx
prof = prof.runctx(statement, globals, locals)
File "/usr/lib/python2.7/cProfile.py", line 140, in runctx
exec cmd in globals, locals
File "mymodule/lib.py", line 1, in <module>
from .config import NAME
ValueError: Attempted relative import in non-package

那么,我怎样才能 cProfile 一个库呢?由于库没有做任何事情,因此只会分析 lib 模块的导入,但这对我来说已经足够了。我不想在这个阶段分析所有函数调用,只分析模块的导入。

如何使用 cProfile 为具有相对导入的模块执行此操作,避免 ValueError

最佳答案

希望我没听错,但您可以像这样使用 cProfile API:

» python
>>> import cProfile
>>> cProfile.run('import mylib.lib')
511 function calls (500 primitive calls) in 0.002 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
3 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap>:119(release)
...
>>>

或者您可以像 python -c "import cProfile; cProfile.run('import mylib.lib')" 这样在一行中完成。

希望这对您有所帮助。

关于python - cProfiling 具有相对导入的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25565881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com