web.py не импортирует MySQLdb - PullRequest
       3

web.py не импортирует MySQLdb

0 голосов
/ 29 сентября 2011

Я работаю с web.py и по какой-то причине я получаю следующую ошибку:

[Thu Sep 29 13:47:20 2011] [error] [client 64.8.210.120]   File "/usr/lib/python2.6/site-packages/web.py-0.36-py2.6.egg/web/db.py", line 975, in __init__
[Thu Sep 29 13:47:20 2011] [error] [client 64.8.210.120]     import MySQLdb as db
[Thu Sep 29 13:47:20 2011] [error] [client 64.8.210.120] ImportError: No module named MySQLdb

Вот мой sys.path, если это виновник? Но я вижу яйцо, поэтому не знаю. Мысли? * * 1004

 ['', '/usr/lib/python2.6/site-packages/Bravo-1.7.2-py2.6.egg', 
    '/usr/lib/python2.6/site-packages/Twisted-11.0.0-py2.6-linux-i686.egg',
     '/usr/lib/python2.6/site-packages/construct-2.04-py2.6.egg',
 '/usr/lib/python2.6/site-packages/zope.interface-3.7.0-py2.6-linux-i686.egg', '/usr/lib/python2.6/site-packages/web.py-0.36-py2.6.egg', 
'/usr/lib/python2.6/site-packages/MySQL_python-1.2.3-py2.6-linux-i686.egg', 
    '/usr/lib/python2.6/site-packages/setuptools-0.6c12dev_r88846-py2.6.egg',
     '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', 
    '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages',
     '/usr/lib/python2.6/site-packages/PIL']

Вот содержимое каталога 2.6 site-packages:

[root@xxxx ~]# locate *.egg
/root/MySQL-python-1.2.3/dist/MySQL_python-1.2.3-py2.6-linux-i686.egg
/usr/lib/python2.4/site-packages/errorhandler-1.1.1-py2.4.egg
/usr/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg
/usr/lib/python2.4/site-packages/xlrd-0.7.1-py2.4.egg
/usr/lib/python2.4/site-packages/xlutils-1.4.1-py2.4.egg
/usr/lib/python2.4/site-packages/xlutils-1.4.1-py2.5.egg
/usr/lib/python2.4/site-packages/xlwt-0.7.2-py2.4.egg
/usr/lib/python2.6/site-packages/Bravo-1.7.2-py2.6.egg
/usr/lib/python2.6/site-packages/MySQL_python-1.2.3-py2.6-linux-i686.egg
/usr/lib/python2.6/site-packages/Twisted-11.0.0-py2.6-linux-i686.egg
/usr/lib/python2.6/site-packages/construct-2.04-py2.6.egg
/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg
/usr/lib/python2.6/site-packages/setuptools-0.6c12dev_r88846-py2.6.egg
/usr/lib/python2.6/site-packages/web.py-0.36-py2.6.egg
/usr/lib/python2.6/site-packages/zope.interface-3.7.0-py2.6-linux-i686.egg

Если я открою python (2.4 или 2.6), я смогу import MySQLdb без проблем.

Спасибо, Том

Ответы [ 3 ]

1 голос
/ 30 сентября 2011

В нижней части вашего файла bashrc (обычно в /etc/bashrc) поместите это (или просто обновите переменную PYTHONPATH env, добавив /usr/lib/python2.6/site-packages):

if [ $PYTHONPATH ]
then
    export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.6/:/usr/lib/python2.6/site-packages/
else
    export PYTHONPATH=/usr/lib/python2.6/:/usr/lib/python2.6/site-packages/
fi

Или, для конкретногопользователь, который запускает сценарий, поместите вышеупомянутое в /home/[USER_RUNNING_SCRIPT]/.bashrc.

Затем укажите источник файла:

$ source ~/.bashrc
# or
# source /etc/bashrc
0 голосов
/ 30 сентября 2011

Попробуйте написать простую страницу, чтобы показать sys.path в том виде, в каком он существует в среде выполнения веб-сервера. Не уверен, показывает ли это то, что показывает ваш sys.path в своем вопросе, или вы запустили его в интерактивном режиме из своего логина. Скорее всего, ID пользователя, под которым работает http-сервер, настроен иначе, чем у обычного пользователя.

0 голосов
/ 30 сентября 2011

Вы можете скачать mysqldb по адресу: http://sourceforge.net/projects/mysql-python/

...