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多线程编程(七):使用Condition实现复杂同步
Apr 05 Python
python中管道用法入门实例
Jun 04 Python
浅析Python的web.py框架中url的设定方法
Jul 11 Python
使用TensorFlow实现SVM
Sep 06 Python
python模块导入的细节详解
Dec 10 Python
Numpy的简单用法小结
Aug 28 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
Oct 27 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 Python
Python利用Scrapy框架爬取豆瓣电影示例
Jan 17 Python
python随机模块random的22种函数(小结)
May 15 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 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伪静态页面函数附使用方法
2008/06/20 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
PHP缓存技术的使用说明
2011/08/06 PHP
CURL状态码列表(详细)
2013/06/27 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
Python的词法分析与语法分析
2013/05/18 Python
简单了解python模块概念
2018/01/11 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
怎么快速自学python
2020/06/22 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
生产车间班组长岗位职责
2014/01/06 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
房屋出售授权委托书
2014/10/12 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP
asyncio异步编程之Task对象详解
2022/03/13 Python