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多线程编程(八):使用Event实现线程间通信
Apr 05 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
pycharm 安装JPype的教程
Aug 08 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
Python龙贝格法求积分实例
Feb 29 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
详解python中groupby函数通俗易懂
May 14 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数据缓存技术
2007/02/14 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
Angular.js实现动态加载组件详解
2017/05/28 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
AngularJS 打开新的标签页实现代码
2017/09/07 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
python实现按行切分文本文件的方法
2016/04/18 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
python实现猜单词小游戏
2020/05/22 Python
python实现多人聊天室
2020/03/31 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
行政副总岗位职责
2014/02/23 职场文书
2015年科室工作总结
2015/04/10 职场文书
Nginx配置之禁止指定IP访问
2022/05/02 Servers
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技