问题
I am trying to import the cProfile module into Python 3.3.0, but I got the following error:
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'
The complete code (cProfile_try.py
) is as follows
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)')
回答1:
As noted in a comment, it is likely that there unexpectedly exists a file named profile.py
, possibly in the current directory. This file is being unintentionally used by cProfile
, thereby masking Python's profile
module.
A suggested solution is:
mv profile.py profiler.py
Next, for good measure,
If using Python 3:
rm __pycache__/profile.*.pyc
If using Python 2:
rm profile.pyc
来源:https://stackoverflow.com/questions/16006602/cannot-import-cprofile-in-python-3