python MySQLdb Windows下安装教程及问题解决方法


Posted in Python onMay 09, 2015

使用python访问mysql,需要一系列安装

linux下MySQLdb安装见 
Python MySQLdb在Linux下的快速安装
https://3water.com/article/65743.htm

-------------------------------------------------------------
以下是windows环境下的:

1. 安装数据库mysql
下载地址:http://www.mysql.com/downloads/
可以顺带装个图形工具,我用的是MySQL-Front
 
2. 安装MySQLdb
 
好了,到了这一步,你有两个选择
A. 安装已编译好的版本(一分钟)
B. 从官网下,自己编译安装(介个…..半小时到半天不等,取决于你的系统环境以及RP)
 
若是系统32位的,有c++编译环境的,自认为RP不错的,可以选择自己编译安装,当然,遇到问题还是难免的,一步步搞还是能搞出来的
若是系统64位的,啥都木有的,建议下编译版本的,甭折腾
 
2.1安装已编译版本:
http://www.codegood.com/downloads
根据自己系统下载,双击安装,搞定
然后import MySQLdb,查看是否成功
 
我的,win7,64位,2.7版本

MySQL-python-1.2.3.win-amd64-py2.7.exe
 
2.2自己编译安装
话说搞现成的和自己编译差距不一一点半点的,特别是64位win7,搞死了
 
2.2.1安装setuptools

在安装MySQLdb之前必须安装setuptools,要不然会出现编译错误
http://pypi.python.org/pypi/setuptools
http://peak.telecommunity.com/dist/ez_setup.py 使用这个安装(64位系统必须用这个)
 
2.2.2安装MySQLdb

下载MySQLdb
http://sourceforge.net/projects/mysql-python/
 
解压后,cmd进入对应文件夹
如果32位系统且有gcc编译环境,直接

python setup.py build

2.2.3问题汇总
A. 64位系统,无法读取注册表的问题
异常信息如下:

F:\devtools\MySQL-python-1.2.3>pythonsetup.py build

Traceback (most recent call last):

 File "setup.py", line 15, in <module>

   metadata, options = get_config()

 File "F:\devtools\MySQL-python-1.2.3\setup_windows.py", line7, in get_config

   serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options[' registry_ke

y'] )

WindowsError: [Error 2] The system cannotfind the file specified

解决方法:
其实分析代码,发现只是寻找mysql的安装地址而已  修改setup_windows.py如下
注解两行,加入一行,为第一步mysql的安装位置
   #serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,options['registry_key'] )

   #mysql_root, dummy = _winreg.QueryValueEx(serverKey,'Location')

   mysql_root = r"F:\devtools\MySQL\MySQL Server 5.5"

B.没有gcc编译环境
unable to find vcvarsall.bat

解决方法:安装编译环境(一个老外的帖子)
1)  First ofall download MinGW. Youneed g++compiler and MingW make in setup.
2)  If youinstalled MinGW for example to “C:\MinGW” then add “C:\MinGW\bin”to your PATH in Windows.(安装路径加入环境变量)
3)  Now startyour Command Prompt and go the directory where you have your setup.py residing.
4)  Last andmost important step:
setup.py install build --compiler=mingw32
或者在setup.cfg中加入:
[build]

    compiler = mingw32

 

C.gcc: /Zl: No suchfile or directory错误

异常信息如下

F:\devtools\MinGW\bin\gcc.exe -mno-cygwin-mdll -O -Wall -Dversion_info=(1,2,3,'

final',0) -D__version__=1.2.3"-IF:\devtools\MySQL\MySQL Server 5.5\include" -IC

:\Python27\include -IC:\Python27\PC -c_mysql.c -o build\temp.win-amd64-2.7\Rele

ase\_mysql.o /Zl

gcc: error: /Zl: No such file or directory

error: command 'gcc' failed with exitstatus 1

参数是vc特有的编译参数,如果使用mingw的话因为是gcc所以不支持。可以在setup_windows.py中去掉
/Zl
 
解决方法:
修改setup_windows.py  改为空的
#extra_compile_args = [ '/Zl' ]

    extra_compile_args = [ '' ]

 目前就遇到这几个问题,望补充
 
3.  增删改查代码示例及结果(just for test)
CREATE TABLE `user` (  

  `Id` int(11) NOT NULL AUTO_INCREMENT,  

  `name` varchar(255) DEFAULT NULL,  

  `age` varchar(255) DEFAULT NULL,  

  PRIMARY KEY (`Id`)  

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; 

#-*- coding:utf-8 -*-  

#dbtest.py  

#just used for a mysql test  

''''' 

Created on 2012-2-12 

 

@author: ken 

'''  

#mysqldb      

import time, MySQLdb, sys    

         

#connect   

conn=MySQLdb.connect(host="localhost",user="root",passwd="test_pwd",db="school",charset="utf8")    

cursor = conn.cursor()      

         

#add  

sql = "insert into user(name,age) values(%s,%s)"     

param = ("tom",str(20))      

n = cursor.execute(sql,param)      

print n      

         

#更新      

sql = "update user set name=%s where Id=9001"     

param = ("ken")      

n = cursor.execute(sql,param)      

print n      

  

#查询      

n = cursor.execute("select * from user")      

for row in cursor.fetchall():      

    for r in row:      

        print r,     

print ""  

  

  

#删除      

sql = "delete from user where name=%s"     

param =("ted")      

n = cursor.execute(sql,param)      

print n      

cursor.close()      

         

#关闭      

conn.close() 
Python 相关文章推荐
Python编程中的文件操作攻略
Oct 16 Python
Python编程django实现同一个ip十分钟内只能注册一次
Nov 03 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
对python函数签名的方法详解
Jan 22 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
基于python实现生成指定大小txt文档
Jul 20 Python
python使用建议与技巧分享(一)
Aug 17 Python
python 8种必备的gui库
Aug 27 Python
python 两种方法删除空文件夹
Sep 29 Python
Python MySQLdb Linux下安装笔记
May 09 #Python
python实现类的静态变量用法实例
May 08 #Python
python使用pil生成图片验证码的方法
May 08 #Python
python实现连接mongodb的方法
May 08 #Python
python写入xml文件的方法
May 08 #Python
python从sqlite读取并显示数据的方法
May 08 #Python
python创建一个最简单http webserver服务器的方法
May 08 #Python
You might like
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
javascript 闭包详解
2015/02/15 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
Python编写百度贴吧的简单爬虫
2015/04/02 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
python调用摄像头显示图像的实例
2018/08/03 Python
如何通过python画loss曲线的方法
2019/06/26 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
《一件运动衫》教学反思
2014/02/19 职场文书
机修工工作职责
2014/02/21 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
文秘自荐信
2014/06/28 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
高考1977观后感
2015/06/04 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
Python实现排序方法常见的四种
2021/07/15 Python
使用Python开发冰球小游戏
2022/04/30 Python