Ubuntu中的Python-MySQLdb错误
我正在尝试在Ubuntu上设置环境(从MS-Windows转过来)。
当然,它有Python 2.6。
我已经通过“Ubuntu软件中心”安装了MySQL 5512和MySQLdb。
import dabo
import MySQLdb
一切正常,没有错误。
但是在建立连接时,它说MySQLdb和_mysql的版本不匹配。
ImportError: this is MySQLdb version (1, 2, 3, 'gamma', 1), but _mysql
is version (1, 2, 2, 'final', 0)
我该如何解决这个问题?
完整的错误追踪信息 ---->
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "dabovmd/hotel.py", line 4, in <module>
empconn = dabo.db.dConnection(empci)
File "dabo/db/dConnection.py", line 32, in __init__
self._connection = self._openConnection(**kwargs)
File "dabo/db/dConnection.py", line 80, in _openConnection
return
self._connectInfo.getConnection(forceCreate=self._forceCreate, **kwargs)
File "dabo/db/dConnectInfo.py", line 105, in getConnection
return self._backendObject.getConnection(self, **kwargs)
File "dabo/db/dbMySQL.py", line 25, in getConnection
import MySQLdb as dbapi
File "/media/pyth/python26/Lib/site-packages/MySQLdb/__init__.py",
line 23, in <module>
(version_info, _mysql.version_info))
ImportError: this is MySQLdb version (1, 2, 3, 'gamma', 1), but _mysql
is version (1, 2, 2, 'final', 0)
提前谢谢你,
Vineet
4 个回答
看起来,apt-get和pip各自安装了自己的库版本。你可以试着用这个命令来卸载系统中的mysql库:sudo apt-get remove python-mysqldb
,然后你应该会看到类似下面的内容:
正在读取软件包列表... 完成
正在构建依赖关系树
正在读取状态信息... 完成
以下软件包将被移除:
python-mysqldb
0 个升级,0 个新安装,1 个将被移除,3 个未升级。
完成后,将释放196 kB的磁盘空间。
你想继续吗? [Y/n] y
(正在读取数据库 ... 当前安装了109333个文件和目录。)
正在移除 python-mysqldb (1.2.3-2ubuntu1) ...
这可能不太符合你的需求,但我发现MySQL Connector/Python比MySQLdb更容易设置。它完全用Python实现,所以不需要担心C语言的接口库。
这个方案有几个缺点。它可能会慢一些。而且更重要的是,我对Dabo一无所知,所以不知道是否可以换成其他的MySQL接口。
这看起来是你的MySQL服务器和python-mysqldb之间的版本不匹配。
你现在用的是哪个版本的Ubuntu?(如果你最近刚换过系统,可以试试使用Ubuntu 11.04)。
解决这个问题最简单的方法就是把你的Ubuntu更新到至少11.04,然后安装匹配的mysql-server和python-mysqldb版本。
我现在用的是Ubuntu 11.04,我的mysql-server版本是5.1.54-1ubuntu4,python-mysqldb版本是1.2.2-10build2。
希望这些信息对你有帮助。