Ubuntu中的Python-MySQLdb错误
Posted
技术标签:
【中文标题】Ubuntu中的Python-MySQLdb错误【英文标题】:Python-MySQLdb Error in Ubuntu 【发布时间】:2011-12-14 06:12:11 【问题描述】:我正在尝试在 Ubuntu 中设置环境(从 微软视窗)。 当然,它有 Python 2.6。 我确实从“Ubuntu 软件中心”设置了 mysql 5512 和 MySQLdb。
import dabo
import MySQLdb
工作正常。没有错误。
但是在建立连接时,is 表示存在不匹配 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)
提前致谢,
维内特
【问题讨论】:
从 'Ubuntu 软件中心' 卸载后,我尝试分别安装 MySQL-python 1.2.2 和 1.2.3。它在定位 'mysql_config' 文件时抛出错误。实际上该文件与 setup.cfg 一起存在我该如何解决这个问题? 【参考方案1】:这似乎是您的 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。
希望对你有帮助
【讨论】:
感谢乌尼的回复。我会尝试升级 Ubuntu、MySQL、MySQLdb。我认为更新可能需要很多时间。我会在这里发回结果。【参考方案2】:这可能不适合您的需要,但我发现MySQL Connector/Python 比 MySQLdb 更容易设置。它完全用 Python 实现,因此它不关心 C 接口库。
此解决方案有几个缺点。应该会慢一些。更重要的是,在你的情况下,我对 Dabo 一无所知,所以我不知道是否可以在不同的 MySQL 界面中进行 sub 。
【讨论】:
@mtrw,感谢您的回答。在 DABO 中,MySQLdb 是强制性的。顺便说一句,对于面向数据库的应用程序,DABO 是 Python 中的一个优秀包。您可以使用完整的(桌面框架)或“bizobj”库以及您选择的其他框架。见dabodev.com【参考方案3】:请不要做上面建议的事情......
在您的 MySQLdb 文件夹中使用这些命令:
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo python setup.py install
【讨论】:
我会帮助澄清上面的建议以及为什么不这样做。【参考方案4】:似乎每个 apt-get 和 pip 都安装了自己的库版本。
尝试使用sudo apt-get remove python-mysqldb
删除系统mysql,然后
你应该有这样的东西:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
python-mysqldb
0 upgraded, 0 newly installed, 1 to remove and 3 not upgraded.
After this operation, 196 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 109333 files and directories currently installed.)
Removing python-mysqldb (1.2.3-2ubuntu1) ...
【讨论】:
以上是关于Ubuntu中的Python-MySQLdb错误的主要内容,如果未能解决你的问题,请参考以下文章