MySQLdb and _mysql versions ncompatible: how to upgrade _mysql
我正在运行MySQLdb v1.2.3并收到以下错误:
1 | LookupError: unknown encoding: utf8mb4 |
这个答案建议将MySQLdb更新为1.2.5版。 我更新了,现在收到此错误:
1 | ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 2, 3, 'final', 0) |
我不知道如何更新
编辑:我已经尝试运行以下三种方法:
1 2 3 4 5 6 7 | sudo pip uninstall mysql-python sudo pip install mysql-python sudo pip uninstall mysql-python sudo pip install mysql-python==1.2.5 sudo pip install mysql-python --upgrade |
卸载时我得到了
1 2 3 4 5 | /usr/local/lib/python2.7/dist-packages/_mysql.so /usr/local/lib/python2.7/dist-packages/_mysql_exceptions.py /usr/local/lib/python2.7/dist-packages/_mysql_exceptions.pyc Proceed (y/n)? y Successfully uninstalled MySQL-python-1.2.3 |
之后,我无法导入
第二次编辑/解决方案:结果
根据用户手册:
If you want to write applications which are portable across databases, use MySQLdb, and avoid using this module directly. _mysql provides an interface which mostly implements the MySQL C API. For more information, see the MySQL documentation. The documentation for this module is intentionally weak because you probably should use the higher-level MySQLdb module.
基本上,_mysql是MySQL C API的面向对象的包装器。
这篇文章解释了如何使用pip升级一个模块,一个具有所有依赖关系的模块,或者它的任意组合。 我认为,鉴于声明,MySQLdb没有依赖于_mysql,并且它们没有一起升级。 请访问分享的链接。
编辑:经过一番挖掘,我发现Ubuntu不能很好地支持MySQL,只是pip不起作用。
所以我去了这个链接做了:
在做之前
这对我很有用。 对于您,我认为您可能需要升级甚至apt-get删除,然后重新安装上述两个Ubuntu模块
对我来说,这是第一次安装时的工作; 转到终端并输入python解释器,然后键入:
1 2 3 4 | import MySQLdb MySQLdb.__version__ #I got '1.2.5' import _mysql _mysql.__version__ #Again, I got '1.2.5' |