web.py无法导入MySQLdb
我正在使用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,可能是问题所在吗?我看到有.egg文件,但我不太确定。你们有什么想法吗?
['', '/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 个回答
0
你可以在这里下载mysqldb:http://sourceforge.net/projects/mysql-python/
0
试着写一个简单的网页,来显示在网络服务器运行环境中存在的 sys.path。 我不确定你在问题中展示的 sys.path 是否就是这个,还是你在登录后以交互方式运行的。很可能,运行 HTTP 服务器的用户和你作为普通用户的环境设置是不同的。
1
在你的bashrc文件的底部(通常是在/etc/bashrc
这个路径下),添加以下内容(或者直接更新一下PYTHONPATH
这个环境变量,让它包含/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