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