У модуля Python 'module' нет атрибута 'compile' - PullRequest
4 голосов
/ 05 февраля 2012
[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'

есть идеи?

Та же ошибка:

[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'

отредактировано: /usr/lib64/python2.6/site-packages/MySQLdb/cursors.py добавлено:

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'
>>>

1 Ответ

7 голосов
/ 05 февраля 2012

Странно.У вас есть модуль с именем «re.py» где-то в вашем пути Python, который скрывает «настоящий» модуль re?

ОБНОВЛЕНИЕ: Хорошо, основываясь на ваших изменениях, я теперь уверен, что у вас есть модуль re.py, который скрывает реальный, и если я правильно читаю путь, он находится в самом каталогеВы звоните из программы!Вы написали модуль re.py, в котором есть одна функция «modify_url»?

В любом случае, найдите этот re.py - он, вероятно, находится в вашем каталоге скриптов - и переименуйте его в другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...