Python 运行cProfile时获取当前模块

Python 运行cProfile时获取当前模块,python,python-3.x,python-module,cprofile,Python,Python 3.x,Python Module,Cprofile,我想了解我的模块(列出所有函数名),即使在使用cProfile时也是如此。我该怎么做 为了澄清这一点,我在自己的模块中使用了一些内省,但是当使用-mcprofile运行时,sys.modules[\uuu\uu主键]当然不再返回自己的模块 要复制,请创建modtest.py: #!/usr/bin/env python3 import sys print(sys.modules[__name__]) 这样运行: $ ./modtest.py <module '__main__' from

我想了解我的模块(列出所有函数名),即使在使用cProfile时也是如此。我该怎么做

为了澄清这一点,我在自己的模块中使用了一些内省,但是当使用
-mcprofile
运行时,
sys.modules[\uuu\uu主键]
当然不再返回自己的模块

要复制,请创建modtest.py:

#!/usr/bin/env python3
import sys
print(sys.modules[__name__])
这样运行:

$ ./modtest.py
<module '__main__' from './modtest.py'>
$ python -m cProfile ./modtest.py
<module 'cProfile' from '...cProfile.py'>
$。/modtest.py
$python-mcprofile./modtest.py

我如何才能从“/modtest.py”中得到最后一行“
”?

当您将模块作为参数提供给
cProfile
时,您将无法从
sys.modules
中获取模块对象
cProfile
甚至不为您导入模块,它只是执行它,您甚至无法在它完成执行后从
sys.modules
获取它

当通过
-m
开关运行时,
\uuuuu main\uuuuu
将必然指向
cProfile
,这一点没有改变

您始终可以从
sys.argv[0]
中获取模块名称,使用
importlib
自行导入,然后列出函数名称