Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python 'module' object has no attribute 'compile'

[root@proxy-001 scripts]# python
Python 2.6.6 (r266:84292, Dec  7 2011, 20:48:22)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
   >>> import MySQLdb
   >>> from MySQLdb import cursors
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 16, in <module>
        insert_values= re.compile(restr)
    AttributeError: 'module' object has no attribute 'compile'

any ideas?

Same error:

[root@proxy-001 scripts]# python
Python 2.6.6 (r266:84292, Dec  7 2011, 20:48:22)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> import MySQLdb
>>> import MySQLdb.cursors
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 16, in <module>
    insert_values= re.compile(restr)
AttributeError: 'module' object has no attribute 'compile'

edited: /usr/lib64/python2.6/site-packages/MySQLdb/cursors.py added:

print re
print dir(re)
insert_values= re.compile(restr)


[root@proxy-001 scripts]# python
Python 2.6.6 (r266:84292, Dec  7 2011, 20:48:22)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> import MySQLdb
>>> import MySQLdb.cursors
<module 're' from 're.pyc'>
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'main', 'modify_url', 'sys']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 18, in <module>
    insert_values= re.compile(restr)
AttributeError: 'module' object has no attribute 'compile'
>>>
like image 602
krisdigitx Avatar asked Feb 05 '12 14:02

krisdigitx


1 Answers

That's strange. Do you have a module named "re.py" somewhere in your Python path which is shadowing the "real" re module?

UPDATE: Okay, based on your edit, I'm now certain that you have an re.py module which is shadowing the real one, and if I'm reading the path correctly, it's in the very directory you're calling the program from! Did you write an re.py module which has one "modify_url" function?

Anyway, find that re.py -- it's probably in your scripts directory -- and rename it to something else.

like image 111
DSM Avatar answered Sep 25 '22 11:09

DSM