Unable to import cProfile in Python 3

I am trying to import the cProfile module in 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 full 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)') 
+12
source share
1 answer

As noted in the commentary, it is likely that unexpectedly there is a file called profile.py , possibly in the current directory. This file is inadvertently used by cProfile , thereby masking the Python profile module.

Proposed Solution:

 mv profile.py profiler.py 

Further, for good measure,

If you are using Python 3:

 rm __pycache__/profile.*.pyc 

If you are using Python 2:

 rm profile.pyc 
+26
source

All Articles