在Ubuntu下安装python的mysql模块时,遇到了一些问题,网上百度一一解决,下面汇总一下以备不时之需
1. 安装mysql模块见:python使用mysql数据库
2.mysql-python安装时EnvironmentError: mysql_config not found 见:EnvironmentError: mysql_config not found
3.解决Python.h:没有那个文件或目录错误的办法:解决Python.h
4.python-dev无法安装:解决python-dev无法安装
主要安装步骤:(参照链接1中,copy过来的,修改了些)
安装MySql:
>>sudo apt-get install mysql-server
>>Sudo apt-get install mysql-client
要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。
下载地址:https://pypi.python.org/pypi/MySQL-python/
我使用的是最新的,
下载MySQL-python-1.2.3.zip 文件之后直接解压。进入MySQL-python-1.2.3目录:
>>sudo python setup.py install
这时便出错了,错误如下:
sh: mysql_config: not found
Traceback (most recent call last):
File "setup.py", line 15, in <module>
metadata, options = get_config()
File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "/home/zhxia/apps/source/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
只要原因是没有安装:libmysqlclient-dev
sudo apt-get install libmysqlclient-dev
找到mysql_config文件的路径
sudo updatedb locate mysql_config
mysql_config的位置为:/usr/bin/mysql_config
在mysql-python源码包下找到:setup_posix.py 文件,然后找到文件中的 mysql_config.path 将其值改为:/usr/bin/mysql_config,然后 sudo python setup.py install ,就ok了
弄好之后,继续sudo python setup.py install,又出问题了,问题如下:
致命错误: Python.h:没有那个文件或目录
error: Setup script exited with error: command 'gcc' failed with exit status 1
解决办法见上面的链接3.方法如下:
解决方法是安装python-dev,这是Python的头文件和静态库包:
sudo apt-get install python-dev
但是当我在安装python-dev的时候又出现问题了,问题如下:
下列软件包有未满足的依赖关系:
python2.7-dev : 依赖: python2.7 (= 2.7.3-0ubuntu3) 但是 2.7.3-0ubuntu3.1 正要被安装
依赖: libpython2.7 (= 2.7.3-0ubuntu3) 但是 2.7.3-0ubuntu3.1 正要被安装
依赖: libexpat1-dev 但是它将不会被安装
依赖: libssl-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决办法见上面的链接4中的回答,方法如下:
用aptitude 工具可以搞定
先:sudo apt-get install aptitude
然后:
sudo aptitude install python-dev
下列“新”软件包将被安装。
python-dev python2.7-dev{ab}
0 个软件包被升级,新安装 2 个, 0 个将被删除, 同时 0 个将不升级。
需要获取 29.5 MB 的存档。 解包后将要使用 39.3 MB。
下列软件包存在未满足的依赖关系:
python2.7-dev : 依赖: python2.7 (= 2.7.3-0ubuntu3) 但是 2.7.3-0ubuntu3.1 已安装。
依赖: libpython2.7 (= 2.7.3-0ubuntu3) 但是 2.7.3-0ubuntu3.1 已安装。
依赖: libexpat1-dev 但它将不会被安装。
依赖: libssl-dev 但它将不会被安装。
下列动作将解决这些依赖关系:
保持 下列软件包于其当前版本:
1) python-dev [未安装的]
2) python2.7-dev [未安装的]
是否接受该解决方案?[Y/n/q/?] n(注意这里选择N)
下列动作将解决这些依赖关系:
安装 下列软件包:
1) libexpat1-dev [2.0.1-7.2ubuntu1 (precise)]
2) libssl-dev [1.0.1-4ubuntu3 (precise)]
3) libssl-doc [1.0.1-4ubuntu3 (precise)]
降级 下列软件包:
4) libexpat1 [2.0.1-7.2ubuntu1.1 (now) -> 2.0.1-7.2ubuntu1 (precise)]
5) libpython2.7 [2.7.3-0ubuntu3.1 (now) -> 2.7.3-0ubuntu3 (precise)]
6) libssl1.0.0 [1.0.1-4ubuntu5.7 (now) -> 1.0.1-4ubuntu3 (precise)]
7) python2.7 [2.7.3-0ubuntu3.1 (now) -> 2.7.3-0ubuntu3 (precise)]
8) python2.7-minimal [2.7.3-0ubuntu3.1 (now) -> 2.7.3-0ubuntu3 (precise)]
是否接受该解决方案?[Y/n/q/?] y(这里选择Y)
下列软件包将被“降级”:
libexpat1 libpython2.7 libssl1.0.0 python2.7 python2.7-minimal
下列“新”软件包将被安装。
libexpat1-dev{a} libssl-dev{a} libssl-doc{a} python-dev python2.7-dev{a}
0 个软件包被升级,新安装 5 个, 5 个被降级, 0 个将被删除, 同时 0 个将不升级。
需要获取 39.0 MB 的存档。 解包后将要使用 47.8 MB。
您要继续吗?[Y/n/?]Y
安装过程有点慢
至此,MySql for python 终于安装成功了。。。