您的当前位置:首页正文

Windows配置python的mysqldb或mysqlcli

来源:花图问答

注:这是一篇旧文,是我几个月前写的,现在把博客迁移了,顺便把这篇也拿过来。

介绍

今天花了大概两三个小时折腾Django的开发环境,这时一个基于python的web开发框架,我就不那么多废话了。其实Django本身的安装很方便,官网推进用pip安装但是我没搞清楚怎么回事就没有折腾pip。把Dajango的源码包下载下来在命令行中用<strong>python setup.py install</strong> 命令就可以安装了。然后一个很明显的问题来了,用什么数据库?当然mysql还是首选,django自带的sqlite据说不支持远程登录就不考虑了。那么需要安装可以用来连接mysql的模块。那么这里有几个选择:

  1. MySQLdb
  2. MySQLclient
  3. MySQL connector

配置过程

这篇博客主要说一下MySQLclient(对MySQLdb也适用)的安装过程。下面是奇葩的全过程:

  • 安装MySQL的过程好像没有让你选路径,这是一个坑点,等会会说。然后下载mysqlclient的源码进行安装,如果官方站点太慢可以去github上clone一份源码下来。然后在命令行运行python setup.py install会失败,可能出现以下问题:

    • 把Visual C++ 9.0安装完之后,还是会报错,会告诉你找不到my_config.h这个文件,这个文件又是怎么回事呢?其实就是刚才提到的MySQL C connector,mysqlclient找不到这个C connector的路径了。如果你正确安装了,只要编辑site.cfg这个文件,修改connector的路径即可。如果是在Linux下,安装一个什么mysql-dev的包即可。

    • 然后我又遇到了一个问题,还是报错,说缺少inttypes.h这个头文件,谷歌一番之后发现是因为VC++对C99的标准支持不好,缺少了inttypes.h和stdint.h这两个头文件,可以去网上下载这两个头文件拷贝到VC++ 9.0的include文件夹下,我的机器上路径是这个:

C:\Users\zhouh\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\include
  • 一番折腾后,又报错,链接过程出现问题,也就是找不到静态库,其实这个问题很好解决,就是把C connector里面的lib下的静态库拷到VC ++9.0的lib目录下即可。

  • 最后,出现一个终极错误,我在网上找到的相关博客就是卡在了这一步。报<strong>LNK2001</strong>的错误,有外部符号无法解析,大部分符号可以解析,但是只有3个符号不能解析,我猜想是静态库版本不对,于是到了C connector目录下把vs 10版本的静态库拷了过去,终于安装成功。虽然说报了一堆warning,但总算能正常编译不是吗。

  • 最后写一个python文件,测试一下是否能连接到数据库:

import MySQLdb

host="localhost"
user='root'
passwd='yourpassword'
db='mysql'
conn=MySQLdb.connect(host,user,passwd,db)

cursor=conn.cursor()
sql='select User from mysql.user'
cursor.execute(sql)
data=cursor.fetchall()
print data

如果能把mysql的用户打印出来说明配置成功了。

参考链接