【发布时间】:2013-04-07 01:27:58
【问题描述】:
我正在尝试将 cProfile 模块导入 Python 3.3.0,但出现以下错误:
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
import cProfile
File "/.../cProfile_try.py", line 12, in <module>
help(cProfile.run)
AttributeError: 'module' object has no attribute 'run'
完整代码(cProfile_try.py)如下
import cProfile
help(cProfile.run)
L = list(range(10000000))
len(L)
# 10000000
def binary_search(L, v):
""" (list, object) -> int
Precondition: L is sorted from smallest to largest, and
all the items in L can be compared to v.
Return the index of the first occurrence of v in L, or
return -1 if v is not in L.
>>> binary_search([2, 3, 5, 7], 2)
0
>>> binary_search([2, 3, 5, 5], 5)
2
>>> binary_search([2, 3, 5, 7], 8)
-1
"""
b = 0
e = len(L) - 1
while b <= e:
m = (b + e) // 2
if L[m] < v:
b = m + 1
else:
e = m - 1
if b == len(L) or L[b] != v:
return -1
else:
return b
cProfile.run('binary_search(L, 10000000)')
【问题讨论】:
-
您在当前目录或
sys.path上的其他位置是否有在标准库之前搜索过的cProfile.py?打印cProfile.__file__的值。 -
@eryksun:我认为 cProfile 是要在会话中导入的模块,对吧?导入后,
cProfile.run应该可用... -
@eryksun:谢谢!我得到了这个
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/cProfile.py作为print(cProfile.__file__)的输出。 -
@eryksun:是的...我改用 python 2.7。对于 python 3.3,我没有得到任何输出
-
确保您的目录中没有
profile.py,因为cProfile本身会导入错误的配置文件模块。