开始学习python数据库编程后,在了解了基本概念,打算上手试验一下时,卡在了MYSQLdb包的安装上,折腾了半天才解决。记录一下我在linux中安装此包遇到的问题。系统是ubuntn15.04。

1.下载

第一个问题是pycharm软件的模块安装功能Project Interpreter无法自动下载安装MYSQLdb包,显示

Error occurred when installling package

那没办法了,只好手动下载了。MYSQLdb包linux系统的下载的地址是

http://sourceforge.net/projects/mysql-python/file/mysql-python/

在页面内选择你想要安装的版本下载即可,我下载的版本是1.2.4b4

2.安装

一:下载之后,打开终端,切换到自己的下载文件目录,在我的电脑上是目录/home/hai/download,之后解压下载的文件,即在终端输入:

tar xfz MySQL-python-1.2.4b4.tar.gz

二:使用命令

cd MySQL-python-1.2.4b4

切换到解压后的目录。

三:编译MYSQLdb包

输入命令

python setup.py build

此时遇到问题,报错信息是

mysql_config not found

google之后发现要修改MYSQLdb解压之后目录中的setup_posix.py第26行,此行的内容是

mysql_config.path = "mysql_config"

mysql_config是mysql安装目录中的一个文件的名称,需要将26行变量的值改为此文件的绝对路径。

于是使用

whereis mysql

查看数据库安装目录,进入安装目录。但是发现安装目录中并没有mysql_config文件,啊,好气啊。

再继续google,发现是没有安装libmysqlclient-dev,那就安装!使用命令:

sudo apt-get install libmysqlclient-dev

安装这个东西,之后使用命令:

file -name mysql_config

查看这个文件的路径,ok,有了。

将setup_posix.py文件修改后,再使用python setup-python-1.2.4b4安装,又遇到问题了,错误信息:

error: command 'i686-linux-gnu-gcc' failed with exit status 1

啊啊啊。

继续google,原来是没有安装python-dev,好的,那就安装.使用命令:

sudo apt-get install python-dev

安装完成后,再使用输入了N次的命令python setup.py build,好,终于没有报错了,现在就差一步就安装成功了。

四:输入命令sudo python setup.py install

好,终于安装上了,在python中实验一下,导入一下MYSQLdb模块,import MYSQLdb,没有消息,恩,没有消息就是最好的消息,安装成功!

P.S.另外在google过程中,还看到了好几个错误报警,虽然我没有遇到,还是在这里提一下。
第一个是如果没有安装steuptools,在第三步编译时会报错ImportError: No module named setuptools,那就去安装setuptools,至于setuptools的安装,那就是另外的问题了,就不多说了。
第二个是关于python.h文件报错,这是python版本的问题,需要处理一下python版本,也不再多说。
第三个是/usr/bin/ld:cannot find -lmysqlclient_r报错,这是由于配置文件没有生效。找到mysql的配置文件,使用使用:ldconfig命令刷新使其生效即可。

python的MySQLdb模块在linux环境下的安装的更多相关文章

  1. 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】

    <ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...

  2. 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】

    安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...

  3. Linux 环境下 Lua 安装(转)

    系统环境:CentOS-6.2-x86_64. Lua 是嵌入式脚本语言,应用场景很广泛. 引自官网:Lua is used in many products and projects around ...

  4. 基础--Redis在Linux环境下的安装

    1. 安装redis服务 1.1 检查安装依赖程序 yum install gcc-c++yum install -y tclyum install wget 1.1.1 下载redis安装包 (或者 ...

  5. Linux环境下Oracle安装参数设置

    前面讲了虚拟机的设置和OracleLinux的安装,接下来我们来说下Oracle安装前的准备工作.1.系统信息查看系统信息查看首先服务器ip:192.168.8.120服务器系统:Oracle Lin ...

  6. LINUX环境下SVN安装与配置(利用钩子同步开发环境与测试环境)

    安装采用YUM一键安装: 1.环境Centos 6.6 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve ...

  7. Linux环境下mysql安装并配置远程访问

    环境:centOS 1.下载mysql安装文件 [root@localhost ~]# wget http://dev.mysql.com/get/mysql-community-release-el ...

  8. linux环境下redis安装

    本篇文章主要说明的是Linux环境下redis数据库的安装: 首先进入目标目录: 下载安装包,执行命令: wget http://download.redis.io/releases/redis-4. ...

  9. Redis在linux环境下的安装

    下载Redis安装包 wget http://download.redis.io/releases/redis-3.2.9.tar.gz 解压Redis安装包 tar -zxvf redis-3.2. ...

随机推荐

  1. 使用PHP生成二维码(PHPQRCode)

    关于什么是二维码,可以阅读 http://baike.baidu.com/view/132241.htm 这里就不多讲了,二维码的应用非常广泛,似乎一夜之间渗透到我们生活的方方面面,地铁广告.报纸.火 ...

  2. MAC本如何优雅的创建定时任务

    在MACOS上设置定时任务大体有两种方案.一种是使用crontab,一种是使用Schedule,今天结合我的使用简单介绍一下. 先说一下背景,为什么MAC可以用crontab.如果使用过Linux的同 ...

  3. c#基础语句——分支语句

    一.if...else... if是如果的意思,else是另外的意思,if后面跟(),括号内为判断条件,如果符合条件则进入if语句执行命令.如果不符合则不进入if语句.else后不用加条件,但是必须与 ...

  4. XCel 项目总结 - Electron 与 Vue 的性能优化

    XCEL 是由凹凸实验室推出的一个 Excel 数据清洗工具,其通过可视化的方式让用户轻松地对 Excel 数据进行筛选. XCEL 基于 Electron 和 Vue 2.0 进行开发,充分利用 E ...

  5. mybatis基础学习1---(配置文件和sql语句)

    1:配置文件(主要配置文件) 2:配置文件(引入) 3:sql语句解析: <mapper namespace="/"> <!-- 1 -->根据id查对象 ...

  6. JS中的普通函数和箭头函数

    最近被问到了一个问题: >javaScript 中的箭头函数 (=>) 和普通函数 (function) 有什么区别? 我当时想的就是:这个问题很简单啊~(flag),然后做出了错误的回答 ...

  7. (3)简单说说java中的异常体系

    java异常体系 |--Throwable 实现类描述java的错误和异常 一般交由硬件处理 |--Error(错误)一般不通过代码去处理,一般由硬件保护 |--Exception(异常) |--Ru ...

  8. SQLServer 数据库不能重命名的解决方案

    无法用排他锁锁定该数据库,以执行该操作 SQL Server2008 因为可能其他用户在占用着该数据库 解决办法为 把数据库先改为单用户的,再改数据库名,再改回多用户的 USE [master] GO ...

  9. java学习笔记 --- 多态

    一.多态 (1)定义:同一个对象在不同时刻体现出来的不同状态.父类的引用或者接口的引用指向了自己的子类对象.   Dog d = new Dog();//Dog对象的类型是Dog类型.  Animal ...

  10. js求三位数的和

    例如输入508就输出5+0+8的和13: <!DOCTYPE html> <html lang="en"> <head> <meta ch ...