Ubuntu中的Python-MySQLdb错误

3 投票
4 回答
3390 浏览
提问于 2025-04-17 04:54

我正在尝试在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 个回答

1

看起来,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) ...

1

这可能不太符合你的需求,但我发现MySQL Connector/Python比MySQLdb更容易设置。它完全用Python实现,所以不需要担心C语言的接口库。

这个方案有几个缺点。它可能会慢一些。而且更重要的是,我对Dabo一无所知,所以不知道是否可以换成其他的MySQL接口。

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。

希望这些信息对你有帮助。

撰写回答