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之wxPython应用实例
Sep 28 Python
Python日志模块logging简介
Apr 13 Python
在Python中编写数据库模块的教程
Apr 29 Python
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
Python的标准模块包json详解
Mar 13 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python Json序列化与反序列化的示例
Jan 31 Python
在Python中表示一个对象的方法
Jun 25 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
python删除指定列或多列单个或多个内容实例
Jun 28 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
Js 随机数产生6位数字
2010/05/13 Javascript
js鼠标左右键 键盘值小结
2010/06/11 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
利用python实现数据分析
2017/01/11 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
Python 中如何写注释
2020/08/28 Python
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
英文自我鉴定
2013/12/10 职场文书
物流业务员岗位职责
2014/02/08 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
自主招生专家推荐信
2015/03/26 职场文书
2015年体育部工作总结
2015/04/02 职场文书
公司宣传语大全
2015/07/13 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
Pytorch 使用tensor特定条件判断索引
2021/04/08 Python
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis