前言

众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

最近要测试一个python2环境的代码,其中用到了MySQLdb, 查询网络,发现要安装mysql-python,于是就进行了一番艰难的探索,现在汇总记录一下,希望能过够为大家提供些许帮助。

解决方案

本方案前提默认已经安装配置好了mysql环境。

  1. 安装python2

    sudo apt-get install python2

    sudo apt-get install python2-dev

  2. 安装pip2

    wget https://bootstrap.pypa.io/pip/2.7/get-pip.py

    python get-pip.py

  3. 配置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
  1. 安装依赖

    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

  2. 使用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

主要参考博客

  1. mysql-python安装时EnvironmentError: mysql_config not found

  2. 解决mac _mysql.c:44:10: fatal error: ‘my_config.h‘ file not found

  3. 麒麟安装MySQL-python报错:_mysql.c:1804:41: 错误:‘MYSQL {或称 struct st_mysql}’没有名为‘reconnect’的成员

ubuntu20 python2 通过安装包安装mysql-python的更多相关文章

  1. windows 下使用 zip安装包安装MySQL 5.7

    以下内容参考官方文档:http://dev.mysql.com/doc/refman/5.7/en/windows-start-command-line.html 解压缩zip到D:\mysql-5. ...

  2. centos7 二进制安装包安装 mysql5.6

    centos7 二进制安装包安装 mysql5.6 一.下载mysql5.6二进制安装包 http://mirrors.sohu.com/mysql/MySQL-5.6/ 如:mysql-5.6.34 ...

  3. 安装包安装npm

    在阿里云机器上centos7安装npm可以直接yum安装,然后基于镜像的时候安装不了,直接使用安装包安装,记录一下: 官网下载地址:https://nodejs.org/en/download/ #! ...

  4. lnmp1.5一键安装包安装lnmpa后,添加站点

    lnmp1.5一键安装包安装lnmpa后,添加站点 (1)添加站点 (2)配置apache配置文件 在/usr/local/apache/conf/vhost文件夹下,修改webApp站点配置文件ap ...

  5. centos7下使用mysql离线安装包安装mysql5.7

    服务器环境: centos7 x64 需要安装mysql5.7+ 一.卸载CentOS7系统自带mariadb # 查看系统自带的Mariadb [root@CDH-141 ~]# rpm -qa|g ...

  6. mysql非安装包安装教程

    设置mysql的环境变量 本人设置安装的路径是:E:\WebApplication\webMySQL\mysql-5.7.13-winx64 我的电脑 ---> 高级系统配置 ---> 环 ...

  7. MySql(零):Linux(CentOS7)下安装和配置MySQL5.7.20(安装包安装)

    一.下载安装包 1.在官网下载MySQL5.7安装包 mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz. 下载地址:https://dev.mysql.com/do ...

  8. mysql安装包安装

    Centos7.4在无网环境下的Mysql简易安装,使用tar包安装MySQL. 使用的资源: mysql5.7安装包:链接:https://pan.baidu.com/s/1tUJs97Gi-ksy ...

  9. 解决 win10 pycurl安装出错 Command "python setup.py egg_info" failed with error code 10 编译安装包 安装万金油

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/yexiaohhjk/article/de ...

  10. 问题:python2.7 安装包失败,提示错误:Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)

    问题描述: 使用pip安装包时报错,error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat) 环境: pyt ...

随机推荐

  1. rails 之下载

    控制器 def index #传给前端展示层当前的id @id = 6 end # http://127.0.0.1:3000/admin/category_statistics/export_tab ...

  2. FileInputStream和FileOutputStream

    FileInputstream 字节输入流 用于文件内容的读取操作. 创建FileInputstream对象用于读取文件内容,使用后需要进行关闭操作 常用方法: read(); //每次仅读取一个字节 ...

  3. 等保测评--postgresql修改默认超级用户,建立普通用户使用

    1.postgresql权限说明 SELECT INSERT UPDATE DELETE TRUNCATE REFERENCES TRIGGER CREATE CONNECT TEMPORARY EX ...

  4. PageOffice6最简集成代码(.NetCore)

    本文描述了PageOffice产品在.NetCore项目中如何集成调用. 新建.NetCore项目:PageOffice6-Net-Core-Simple 在此项目的"依赖项-包-管理NuG ...

  5. wxpython模块详解

    一.python gui(图形化)模块介绍: Tkinter :是python最简单的图形化模块,总共只有14种组建 Pyqt     :是python最复杂也是使用最广泛的图形化 Wx       ...

  6. 利用FileReader进行二进制文件传输

    一.读取本地二进制文件,上传(数据库文件为例) 二进制文件读取的时候应当直接读取成字节数组,以免在调试时造成误解.比如数据库文件里面的有些字段是utf8编码,因此,采用utf-8编码读出来也能看到一些 ...

  7. ControlNet

    ControlNets 允许您选择图像来引导 AI,使其更紧密地跟随您的控制图像.您可以选择一个过滤器来预处理图像,以及已知(或自定义)控制网络模型之一. 虽然这听起来与图像到图像相似,但 Contr ...

  8. 带你深入领略 Proxy 的世界

    Proxy 是 es2015 标准规范加入的语法,很可能你只是听说过,但并没有用过,毕竟考虑到兼容的问题,不能轻易地使用 Proxy 特性. 但现在随着各个浏览器的更新迭代,Proxy 的支持度也越来 ...

  9. Rainbond 5.5 发布,支持Istio和扩展第三方Service Mesh框架

    Rainbond 5.5 版本主要优化扩展性.服务治理模式可以扩展第三方 ServiceMesh 架构,兼容kubernetes 管理命令和第三方管理平台. 主要功能点解读: 1. 支持 Istio, ...

  10. vsftp配置使用

    vsftp简介: VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全. 安全性是编写VSFT ...