ubuntu20 python2 通过安装包安装mysql-python
前言
众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
最近要测试一个python2环境的代码,其中用到了MySQLdb, 查询网络,发现要安装mysql-python,于是就进行了一番艰难的探索,现在汇总记录一下,希望能过够为大家提供些许帮助。
解决方案
本方案前提默认已经安装配置好了mysql环境。
-
安装python2
sudo apt-get install python2
sudo apt-get install python2-dev
-
安装pip2
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python get-pip.py
-
配置pip国内镜像源,如果已配置,可忽略此步
在/root/下,mkdir .pip
在/root/.pip/目录下,touch pip.conf
编辑pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
-
安装依赖
aptitude search mysql | grep devel
可以发现,需要libmysql++-dev, libmysqlclient-dev这两个包 (具体下载的包以上一步搜到的为准比如有的是:libmysqlcppconn-dev,default-libmysqld-dev,反正如果提示找不到的话,就可以多安几个试试)
sudo apt-get install libmysql++-dev
sudo apt-get install libmysqlclient-dev
-
使用MySQL-python-1.2.3安装包安装
安装包地址:MySQL-python-1.2.3
下载解压后,放到ubuntu中.
此时,如果在解压目录运行:python2 setup.py install
,会报错:mysql_config not found
需要找到mysql_config地址:
sudo updatedb
locate mysql_config
我的地址在:/usr/bin/mysql_config
接着,修改MySQL-python-1.2.3目录中的setup_posix.py:
把 mysql_config.path = "mysql_config" 修改为 mysql_config.path = "/usr/bin/mysql_config"
如果再运行python2 setup.py install
, 会报错:'my_config.h' file not found
需要找到mysql.h位置,并在同位置把mysql.h复制为my_config.h
locate mysql.h
cd /usr/include/mysql/
cp mysql.h my_config.h
再次运行python2 setup.py install
, 安装成功!
如果安装过程中报错:
_mysql.c:1804:41: error: ‘MYSQL’ {aka ‘struct st_mysql’} has no member n
可以参考:麒麟安装MySQL-python报错:_mysql.c:1804:41: 错误:‘MYSQL {或称 struct st_mysql}’没有名为‘reconnect’的成员:
1. 下载包,官网下载都行。
pip download MySQL-python==1.2.3
2. 解包修改
tar -zxf MySQL-python-1.2.3.tar.gz
cd MySQL-python-1.2.3/
vi _mysql.c +1804 , 注释内容:/* if ( reconnect != -1 ) self->connection.reconnect = reconnect; */
tar -zcf MySQL-python-1.2.3.tar.gz MySQL-python-1.2.3
3. 安装修改过的tar 包。
pip install MySQL-python-1.2.3.tar.gz
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App