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错误的主要内容,如果未能解决你的问题,请参考以下文章

python-mysqldb安装

centos7 使用pip安装python-mysqldb模块出现的问题:

python-MySQLdb接口程序安装

win64位安装python-mysqldb1.2.5

20MySQLdb

Python - Mysqldb 安装错误 [错误:命令错误退出状态为 1:]