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 相关文章推荐
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
python字典的常用方法总结
Jul 31 Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 Python
如何验证python安装成功
Jul 06 Python
python线程优先级队列知识点总结
Feb 28 Python
python3 删除所有自定义变量的操作
Apr 08 Python
python实现网络五子棋
Apr 11 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 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编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
php中return的用法实例分析
2015/02/28 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP echo()函数讲解
2019/02/15 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
js实现图片实时时钟
2020/01/15 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python中标准模块importlib详解
2017/04/16 Python
python psutil库安装教程
2018/03/19 Python
Python生成器generator原理及用法解析
2020/07/20 Python
Python map及filter函数使用方法解析
2020/08/06 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
工商治理实习生的自我评价分享
2014/02/20 职场文书
感恩的演讲稿
2014/05/06 职场文书
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
Java 超详细讲解hashCode方法
2022/04/07 Java/Android