前言

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

最近要测试一个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. golang向上取整、向下取整和四舍五入

    一.概述 官方的math 包中提供了取整的方法,向上取整math.Ceil() ,向下取整math.Floor() 二.用法 package main import ( "fmt" ...

  2. keepalived(2)- keepalived安装和配置

    目录 1. keepalived安装配置 1.1 keepalived安装环境 1.2 keepalived日志文件 1.3 keepalived配置文件 2. keepalived配置 2.1 ke ...

  3. vue3的reactive对象赋值后失去响应式的问题

    vue3种对象类型的响应式用reactive实现. 但是reactive对象在赋值后,因为变量代理函数变了,就失去了响应式功能了.示例如下: <template> <div> ...

  4. salesforce零基础学习(一百三十七)零碎知识点小总结(九)

    本篇参考: https://help.salesforce.com/s/articleView?id=release-notes.rn_lab_conditional_visibiliy_tab.ht ...

  5. C#利用win32API创建窗体

    效果图 代码实现 1 using System; 2 using System.Runtime.InteropServices; 3 //using System.Windows.Forms; 4 5 ...

  6. linux下常用的快捷键和$参数

    1.下面介绍两个在linux下非常有用的$参数 2.!$ 表示引用上一个命令的最后一个参数,例子如下: [root@node5 ~]# echo '!$的作用是引用上一个命令的最后一个参数' > ...

  7. 【题解】A19337.火星背包

    \(\bf{用 CDQ 分治可以极大地提升程序运行的速度.}\) \(\bf{实测在本数据量下,可以在 \color{red}10ms\color{normal}} 内通过所有的测试点!\) 关于折半 ...

  8. php基本语法与安装

            // 什么是PHP         //     PHP 是 后端语言的一种          //         主要作用就是实现数据交互          //          ...

  9. 推荐十个优秀的ASP.NET Core第三方中间件,你用过几个?

    ASP.NET Core 作为一个强大的.跨平台的.高性能的开源框架,为开发者提供了丰富的功能和灵活的扩展性.其中,中间件(Middleware)是 ASP.NET Core 架构中的核心组件之一,它 ...

  10. windows 开发者注册后写代码,这个给钱吗?