Python安装MySQL库详解(解决Microsoft Visual C++ 9.0 is required )
前面我们介绍的Python网络爬虫通常将抓取的数据存储至TXT或CSV文件,而当数据量增加之时,就需要将其存储至本地数据库了。Python访问数据库需要对应的接口程序,我们可以把接口程序理解为Python的一个模块,它提供了数据库客户端的接口供您访问。本文主要讲述Python操作MySQL数据库,通过调用MySQLdb扩展包实现。而在安装过程中会遇到各种各样的错误,这里给出安装MySQL库的详细步骤及错误的解决方法。
第一步:安装Python程序
首先安装Python编程环境python-2.7.8.amd64.msi,如下图所示:
默认安装在C:python27路径,接下来我需要安装pip工具。
第二步:安装pip工具
pip是一个现代的、通用的Python包管理工具,提供了对Python包(Package)的查找、下载、安装及卸载功能。Python可以通过easy_install或者pip命令安装各种各样的包,其中easy_insall提供了“傻瓜式”的在线一键安装模块的方式,而pip是easy_install的改进版,提供更好的提示信息以及下载、卸载Python包等功能,常见用法如下表所示。
在官网 http://pypi.python.org/pypi/pip#downloads 可以下载pip软件,这里我直接双击“get-pip.py”文件进行安装,如下图所示,该文件下载地址。
安装成功之后,在Python27文件夹下生成一个Scripts文件夹,包含了pip和easy_install工具,如下图所示,我们可以调用"pip install xxx"命令安装扩展包。
第三步:安装本地MySQL数据库
接下来安装本地MySQL数据库,这里下载mysql-5.0.96-winx64安装,如下图所示:
第四步:调用pip工具安装MySQL库报错
接下来调用打开cmd命令行,去到"C:python27Scripts"路径安装mysql库。 C:Usersyxz>cd.. C:Users>cd.. C:>cd C:Python27Scripts C:Python27Scripts>pip install mysql
但此时报错如下: error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27 Command "C:Python27python.exe -u -c "import setuptools, tokenize;__file__='c:\users
这是驱动问题,这里我下载VCForPython27.msi软件安装。
第五步:安装VCForPython27.msi
双击软件即可安装,如下图所示:
安装过程如下图所示:
安装成功之后,再调用"pip install mysql"命令安装扩展包,此时报错: _mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory error: command 'C:\Users\yxz\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe' failed with exit status 2
其原因是安装MySQL时没有安装C语言库。一方面可以重新运行MySQL的安装程序,选择Modify,把“C Include Files / Lib Files”勾选上,并安装;另一方面,还是驱动问题,安装MySQL-python-1.2.3.win-amd64-py2.7.exe文件即可。
第六步:安装MySQL-python软件
下载一个MySQL-python-1.2.3.win-amd64-py2.7.exe文件进行安装,如下图所示: 官网地址:https://pypi.python.org/pypi/MySQL-python/ 下载地址:http://download.csdn.net/detail/eastmount/9598651
安装过程如下图所示:
第七步:pip install mysql安装MySQL库
接下来可以成功安装MySQL数据库,如下图所示:
C:Python27Scripts>pip install mysqlCollecting mysqlUsing cached https://files.pythonhosted.org/packages/06/ef/c4efbf2a51fb46aba9be03a973638d9539c9ca10a5259b2cbb1a66133b2e/mysql-0.0.1.tar.gzRequirement already satisfied: MySQL-python in c:python27libsite-packages (from mysql) (1.2.3)Installing collected packages: mysqlRunning setup.py install for mysql ... doneSuccessfully installed mysql-0.0.1C:Python27Scripts>
最后测试MySQL库代码,注意导入MySQLdb库,再进行使用。 详见前文:[python] 专题九.Mysql数据库编程基础知识
import MySQLdbtry:conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',port=3306)cur=conn.cursor()res = cur.execute('show databases')print resfor data in cur.fetchall():print '%s' % datacur.close()conn.close()except MySQLdb.Error,e:print "Mysql Error %d: %s" % (e.args[0], e.args[1])
输出结果如下图所示:
杨秀璋
本科:北京理工大学-软件学院
硕士:北京理工大学-软件学院
工作:贵州财经大学-信息学院
副业:博客写者、程序员
爱好:教学、科研、项目、分享
人生格言:无知·乐观·谦逊·低调·生活,很幸运能成为一名教师,更幸运的是能从事家乡那边的教育事业,尽力而为。
自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真心传授给自己的学生,帮助更多陌生人。
贵州纵美路迢迢,
为负劳心此一遭。
收得破书三四本,
也堪将去教尔曹。
新书:
《Python网络数据爬取及分析从入门到精通(爬取篇)》 《Python网络数据爬取及分析从入门到精通(分析篇)》
本文作者新书上架
·END·
- 深入理解JVM原理之编译openjdk7
- 初识ActiveMQ
- Kafka集群安装
- 知其所以然之永不遗忘的算法
- ZOOKEEPER集群搭建及测试
- 【Python环境】Scikit-Learn:开源的机器学习Python模块
- 【Python环境】可爱的 Python: 自然语言工具包入门
- 电脑静音工作,又听不到12306的来票音乐,纠结啊 !但春节前工作多任务重,不能安心工作,就动手做个“无声购票弹窗”工具吧!
- .net访问PostgreSQL数据库发生“找不到函数名”的问题追踪
- “领域驱动开发”实例之旅(1)--不一样的开发模式 一、分析业务需求。 二、设计领域对象模型 三、测试领域对象模型 四、设计业务处理类 五、设计Entity和Vi
- Java基础——左移和右移
- 【Python环境】利用 Python、SciKit 和文本分类来实现行为分析
- LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结
- 判断两个单链表是否相交(有环、无环两种)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇)
- 6个提升效率的pandas小技巧
- 如何用 Python 让微博热搜榜动起来
- 如何用 Python 让微博热搜榜动起来
- 漫画:什么是 “抽象工厂模式” ?
- 5个很常用的CSS3网页小实例
- 收藏!!!学习Matplotlib看这一份笔记就够了!
- 最全总结 | 聊聊 Python 数据处理全家桶(Sqlite篇)
- Selenium 系列篇(六):反反爬篇
- Selenium 系列篇(五):文件篇
- 腾讯大佬整理了 Python 所有内置异常,Python高手必备的排错手册
- Selenium 系列篇(四):JS 篇
- 【5分钟玩转Lighthouse】家乡的战疫
- Kubernetes 源码学习之延时队列
- Selenium 系列篇(三):窗口篇