尝试从Django使用MySQLdb时,一位同事收到此错误消息:
[...]
ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured:
Error loading MySQLdb module: dlopen(/Users/roy/.python-eggs/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg-tmp/_mysql.so, 2):
Symbol not found: _mysql_affected_rows
Referenced from: /Users/roy/.python-eggs/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg-tmp/_mysql.so Expected in: dynamic lookup
Run Code Online (Sandbox Code Playgroud)
他正在使用OS X 10.5,Python 2.5(使用OS X到达),MySQL 5.1和MySQLdb 1.2.3c1.
知道怎么攻击这个吗?
最好从头开始安装mysql和它的Python绑定,每当我在OS X 10.4或10.5上需要MySQLdb时,我都会使用以下步骤:
为您的系统安装MySQL,dmg安装程序应该足够了
MySQL的默认位置将在某处:/usr/local/mysql-5.0.45-osx10.4-i686.从/usr/local/mysql/lib,创建一个软链接:
ln -s ../../mysql-5.0.45-osx10.4-i686/lib mysql
下载MySQLdb源并解压缩
编辑site.cfg解压缩的MySQLdb目录下的文件,注释掉registry_key并设置mysql_config为:
mysql_config = /usr/local/mysql-5.0.45-osx10.4-i686/bin/mysql_config
继续在MySQLdb目录中构建常规Python包:
sudo python setup.py install
如果一切都很好,请在新终端中测试MySQLdb:
python -c "import MySQLdb"
如果成功,上述内容应该不返回.上面的例子显示了OS 10.4和MySQL 5.0,用适当的工具版本替换它们.
是的,MySQLDb Egg 是针对与系统中存在的版本不同的 libmysqlclient 版本进行编译的。您需要获得一个合适的egg(卸载以前的egg)或从头开始构建MySQLDb,以根据系统中存在的库对其进行编译。
我不知道为什么,但我认为你的同事可能对这个问题感兴趣:
| 归档时间: |
|
| 查看次数: |
8777 次 |
| 最近记录: |