Windows下安装python MySQLdb遇到的问题及解决方法


Posted in Python onMarch 16, 2017

片头语:因为工作需要,在CentOS上搭建环境MySQL+Python+MySQLdb,个人比较习惯使用Windows系统的操作习惯,对纯字符的OS暂时还不太习惯,所以,希望能在Windows系统上也搭建一个类似的环境,用于开发。下面介绍的是在Windows环境下编译MySQLdb的过程。补充一句:最近在网上搜索到一个MySQLdb的Windows安装包,使用起来会更方便一些,地址:http://www.codegood.com/archives/4

或者到 https://3water.com/softs/73369.html下载当然也可以到https://dev.mysql.com/downloads/connector/python/下载

mysql-connector-python是MySQL官网提供的专门连接python的驱动程序;使用起来很方便。文件里面有很多程序实例供参考。

手工编译MySQLdb的过程如下:

下面列举出上面需要用到的软件的下载地址:

 MySQL - http://www.mysql.com/  <个人使用的MySQL的版本:mysql-essential-5.1.53-win32.msi,也许您下载的时候已经有新的版本了。>

Python - http://www.python.org/  <个人使用的Python版本:python-2.6.6.msi>

MySQLdb - http://sourceforge.net/projects/mysql-python/  <个人使用的MySQLdb版本:MySQL-python-1.2.3.tar.gz>

 

1、安装MySQL,选择Custom,然后将“C Include Files / Lib Files”勾选上,如果使用Typical,则会出现问题(1),后面的配置也基本上都是默认选项,除了额外将"添加到系统路径"(Include Bin Directory in Windows PATH)这个复选框勾上。如果你对安装MySQL不是很清楚,可以从网上搜索一下,相关的文章很多,如下:http://rangyang163.blog.163.com/blog/static/37743758200881203744469/

2、安装Python,也基本上默认的选项,只是把安装路径稍微改了一下。Python的默认安装路径是"C:/Python26",个人习惯将其改为"C:/Program Files/Python26"

3、在安装MySQLdb之前必须安装setuptools,要不然会出现编译错误。

 

Setuptools - http://pypi.python.org/pypi/setuptools   <将滚动条向下拖,很快,就可以看到一串下载地址,个人使用的是:setuptools-0.6c11.win32-py2.6.exe,这是因为我使用的Python版本是2.66>

默认安装这个工具即可...

 

好了,可以正式开始安装MySQLdb了,我们下载的这个tar.gz是源码包,里面是没有安装程序的,需要先编译,再安装。<其实只要看看README就明白了。>

(1)将MySQL-python-1.2.3.tar.gz解压到当前目录下,会出现一个MySQL-python-1.2.3文件夹;

(2)WIN+R,打开运行对话框,输入cmd,打开MS-DOS,进入上面解压的那个文件夹;(前提是你得明白cd是什么命令 :-)....)

(3)输入setup.py build开始编译...<额外补充一点,在编译MySQLdb时需要C编译器,如果已经安装了MSVC,则直接编译即可。如果需要指定编译器,可以使用compiler开关。如--compiler=mingw32则使用GCC作为编译器,不过,前提是你需要安装相应的编译器,并配置好环境变量才行。>

我在编译过程中遇到以下问题:

1)问题: _mysql.c(34) : fatal error C1083: Cannot open include file: ‘config-win.h': No such file or directory
error: command ‘”C:/Program Files/Microsoft Visual Studio 9.0/VC/BIN/cl.exe”‘ failed with exit status 2

原因:原因是安装MySQL的时候没有安装C语言库。

解决:重新运行MySQL的安装程序,选择Modify,把“C Include Files / Lib Files”勾选上,并安装。

2)问题:Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "C:/MySQL-python-1.2.3/setup_windows.py", line 7, in get_config
    serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_key'])
WindowsError: [Error 2] The system cannot find the file specified

原因:MySQL for python 1.2.3仍然是在寻找MySQL5.0的版本

解决:1、打开目录下site.cfg文件,修改最后一行为“registry_key = SOFTWARE/MySQL AB/MySQL Server 5.1”
2、打开setup_windows.py文件,修改第七行为“serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE/MySQL AB/MySQL Server 5.1')”

3)问题:build/temp.win32-2.7/Release/_mysql.pyd.manifest : general error c1010070: Failed to load and parse the manifest. The system cannot find the file specified.
error: command ‘mt.exe' failed with exit status 31

原因:路径发生变化?

解决:打开“你的PYTHON安装目录/Lib/distutils/msvc9compiler.py”文件,找到“ld_args.append('/MANIFESTFILE:' + temp_manifest)”这行代码,将其改为“ld_args.append('/MANIFEST')”

(4)当编译完成以后,就可以输入setup.py install了,现在终于大功告成了!

可以在DOS环境下输入以下命令进行测试:

C:/Users/Michael>python
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>

这样就说明MySQLdb已经成功安装了!接下来,就可以学习Python+MySQLdb+MySQL了,祝你愉快!

Python 相关文章推荐
Python中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
详解Django中的过滤器
Jul 16 Python
python用户评论标签匹配的解决方法
May 31 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
Dec 27 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
Oct 12 Python
Python sys模块常用方法解析
Feb 20 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 Python
matplotlib实现数据实时刷新的示例代码
Jan 05 Python
如何用Python搭建gRPC服务
Jun 30 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 #Python
python开发利器之ulipad的使用实践
Mar 16 #Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 #Python
Python中%r和%s的详解及区别
Mar 16 #Python
Python 装饰器深入理解
Mar 16 #Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 #Python
Django卸载之后重新安装的方法
Mar 15 #Python
You might like
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
JavaScript delete 属性的使用
2009/10/08 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
Django中的用户身份验证示例详解
2019/08/07 Python
Django admin组件的使用
2020/10/24 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
用python计算文件的MD5值
2020/12/23 Python
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
应用艺术毕业生的自我评价
2013/12/04 职场文书
读书活动实施方案
2014/03/10 职场文书
闭幕式主持词
2014/04/02 职场文书
离婚起诉书范本
2015/05/18 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
vue elementUI表格控制对应列
2022/04/13 Vue.js
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS