Python中使用Mysql(安装篇)

来源:互联网 发布:zebra gk888t软件 编辑:程序博客网 时间:2024/05/20 18:40

准备工作 import MySQLdb

Linux系统自带了Python,但并不是都有这个包,至少我每次拿到一台全新的服务器时候,都发现没有装这个包。

这个东西的下载地址是

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

最新版本是1.2.3的。如果是微软用户 下载后缀是msi的, 像我这样的Linux用户,就下载MySQL-python-1.2.3.tar.gz 就可以了。

(我上一次搭环境是可以下载的,但偏偏写博客的时候下载不了。。。那就百度一下这个包吧)

我下载了MySQL-python-1.2.3.tar.gz,上传到了百度云, http://pan.baidu.com/s/1ntmMBIL

 

安装MySQLdb

现在假设你已经下载到了MySQL-python-1.2.3.tar.gz 这个安装包 ,传到服务器上之后

1,解压 tar xvfz MySQL-python-1.2.3.tar.gz

2,cd MySQL-python-1.2.3

3,python setup.py build

4,sudo python setup.py install

这4步是 README文件中的安装步骤。

但它有几个前提条件:Python 2.3.4或以上,setuptools等。

如果你卡在第3步, 可能提示你 “ImportError: No module named setuptools”

那么你就需要安装setuptools这个工具了。如果你第3步没有报这个错误,可以跳过这一小段。

安装setuptools

下载地址https://pypi.python.org/pypi/setuptools ,这个网页很长,下载地址在最下面,用鼠标拉到底,再向上滚一屏大概可以看见下载链接。

我计划下载这个文件 setuptools-7.0.tar.gz  我也放在了百度云 http://pan.baidu.com/s/1eQenyts

1,解压 tar xvzf setuptools-7.0.tar.gz 

2,cd setuptools-7.0

3,python setup.py install 

然后我看到了错误消息

1
2
3
4
  File "setup.py", line 18
    withopen(init_path) as init_file:
            ^
SyntaxError: invalid syntax

打开setuptools的README.txt文件,看到了这句话。

Setuptools requires Python 2.6 or later. To install setuptools

它要求Python是2.6以上,可我的Python居然只有Python 2.3.4 -_-

好吧 ,希望你比我好运。下面升级Python。

安装Python

去Python的官网下载一个最新的Python2,因为我没有用过Python3.

地址 https://www.python.org/downloads/release/python-278/

Linux用户下载 

  • Gzipped source tar ball (2.7.8) (sig)  这个就行。

我的云盘地址,Python 2.7.8 http://pan.baidu.com/s/1jGtEqnc

上传到服务器后,开搞。

1,解压 tar xvzf Python-2.7.8.tgz 

2,cd Python-2.7.8  我本来想看下README,哇,一千多行

3,./configure 

4,make

5,make install

/usr/bin/install: cannot create regular file `/usr/local/bin/python2.7': Permission denied

如果你看到这句话,这是因为把文件放到/usr/local/bin/ 这个目录下需要root权限,所以先切换到root用户。 su

在root用户下执行make install 如果没有报错 ,很可能就是安装成功了。

# python

Python 2.7.8 (default, Nov 8 2014, 12:38:12) 
[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

说明你现在的版本是2.7.8了。

如果出现错误信息:

_mysql.c:36:23: error: my_config.h: No such file or directory  _mysql.c:38:19: error: mysql.h: No such file or directory  _mysql.c:39:26: error: mysqld_error.h: No such file or directory  _mysql.c:40:20: error: errmsg.h: No such file or directory  

 则需要安装:

yum install  mysql-devel


现在返回去安装setuptools。回到setuptools的目录下,执行上面的第3步。

3,python setup.py install 

这次果然没报错,看来升级Python 有效果。

安装了setuptools之后,别忘了,这次是说 “安装MySQLdb”, 这跑题有点远。

 

继续回到MySQL-python-1.2.3的目录,执行上面的第4步。

4,sudo python setup.py install

sh: mysql_config: command not found
Traceback (most recent call last):
File "setup.py", line 15, in <module>
metadata, options = get_config()
File "/home/work/fupeng/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "/home/work/fupeng/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

又报了一堆错误。好像没有找打mysql_config 这个文件 ,上网搜了搜。http://blog.csdn.net/mldxs/article/details/23946129 这个博客上说

先执行 find / -name 'mysql_config'

 

然后修改MySQL-python-1.2.3目录下的site.cfg文件,注意不是setup.cfg 

去掉mysql_config=XXX这行的注释,并改成mysql_config=/usr/bin/mysql_config(以mysql_config文件所在机器上的目录为准)

mysql_config=/home/work/webserver/mysql/bin/mysql_config

 

再执行第3步,第4步。

3,python setup.py build

4,sudo python setup.py install

没报错。

python

import MySQLdb 

/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /usr/local/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-x86_64.egg/_mysql.pyc, but /home/work/fupeng/MySQL-python-1.2.3 is being added to sys.path

又报错了, 说这个东西已经存在了。 我决定去/usr/local/lib/python2.7/site-packages/ 这个目录下 把Mysql有关的东西都删了。

rm MySQL_python-1.2.3-py2.7-linux-x86_64.egg

锲而不舍,继续安装。

4,sudo python setup.py install

 

测试

python

import MySQLdb 

ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

又报错 。 这是我装这个东西报错最多的一次 。没事,百度一下。果然有人遇到。 这面这个网站解决了我的问题。

http://www.python tab.com/html/2013/pythonhexinbiancheng_0816/542.html

这个错误是说 不能打开ibmysqlclient_r.so.16 这个共享库。

两种解决方法:

1,如果你安装过Mysql客户端,你应该有这个文件,只是没有放在系统默认搜索的共享库路径下/lib /lib64 。 这是你只要能知道你的Mysql装在了什么地方,搜索到这个文件,作个软连接,放到/lib 就可以了。

将mysql/lib下所有关于libmysqlclient的so文件软链接到/usr/lib下。

>>> ln -s /usr/local/mysql/lib/mysql/libmysqlclient* /usr/lib                  

“/usr/local/mysql/lib/mysql/libmysqlclient” 这个路径是你安装Mysql的地方。我的就不在这里。

重新加载配置

>>> ldconfig

2,让Python-mysql去找 你的mysql共享库。

在MySQL-python-1.2.3的安装目录下找到site.cfg,将

#mysql_config = XXXXXXXXXXXXXXXX

注释符号去掉,并填上mysql_config的地址

 

我用的第一种 制作软连接 的方法。

 

再测试

python

>>> import MySQLdb

>>> 

什么也没有发生 ,没有消息就是好消息。安装完毕。

本来想把Python中对Mysql的操作写一点在这里,没想到安装花了这么久的时间。 那么,后面的,就写在下一篇了吧。


Q&A

python python-eggs 异常解决方法

/Application/bermuda/lib/python2.6/site-packages/pkg\_resources.py:1054: UserWarning: /home/refresh/.python-eggs is writable by group/othersand vulnerableto attack when usedwithget\_resource\_filename. Consider a more secure location (setwith .set\_extraction\_pathorthe PYTHON\_EGG_CACHE environmentvariable). warnings.warn(msg, UserWarning)

进入~目录,

chmodg-wx,o-wx.python-eggs/

0 0
原创粉丝点击