Sal*_*Sal 8 python mysql mysql-python
我正在运行MySQLdb v1.2.3并收到以下错误:
LookupError: unknown encoding: utf8mb4
Run Code Online (Sandbox Code Playgroud)
这个答案建议将MySQLdb更新为1.2.5版.我更新了,现在收到此错误:
ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 2, 3, 'final', 0)
Run Code Online (Sandbox Code Playgroud)
我不确定如何更新_mysql或如何更改我的设置.这只是一个python模块还是以某种方式连接到我的MySQL服务器?
编辑:我已经尝试运行以下三种方法:
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
Run Code Online (Sandbox Code Playgroud)
卸载时我得到了
/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
Run Code Online (Sandbox Code Playgroud)
之后,我无法导入MySQLdb或_mysql重新安装总是给我_mysql1.2.3版本.
第二个编辑/解决方案:结果_mysql安装在服务器上的两个不同位置.如上所述,卸载/安装升级_mysql到v1.2.5,但每当我导入MySQLdb优先级时,其他版本的_mysqlpip都没有被触及.
根据用户手册:
如果您想编写可跨数据库移植的应用程序,请使用MySQLdb,并避免直接使用此模块。_mysql 提供了一个主要实现 MySQL C API 的接口。有关更多信息,请参阅 MySQL 文档。该模块的文档故意很弱,因为您可能应该使用更高级别的 MySQLdb 模块。
基本上,_mysql 是 MySQL C API 的面向对象包装器。
这篇文章解释了如何使用 pip 升级一个模块、一个具有所有依赖项的模块或其任意组合。我认为,鉴于该声明,MySQLdb 对 _mysql 没有依赖关系,并且它们没有一起升级。请访问共享的链接。
编辑:经过一番挖掘,我发现 Ubuntu 不能很好地支持 MySQL,而且 pip 也不起作用。
所以我去了这个链接并做了:
apt-get install python-dev libmysqlclient-dev
在做之前
sudo pip install MySQL-python
这对我来说效果很好。对于你来说,我认为你可能需要升级甚至apt-get删除然后重新安装上述两个Ubuntu模块python-dev并 libmysqlclient-dev.
对我来说,第一次安装时它现在可以工作了;转到终端并输入 python 解释器,然后输入:
import MySQLdb
MySQLdb.__version__ #I got '1.2.5'
import _mysql
_mysql.__version__ #Again, I got '1.2.5'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3475 次 |
| 最近记录: |