Home Backend Development Python Tutorial python MySQLdb Windows下安装教程及问题解决方法

python MySQLdb Windows下安装教程及问题解决方法

Jun 10, 2016 pm 03:12 PM
python windows Installation tutorial

使用python访问mysql,需要一系列安装

linux下MySQLdb安装见 
Python MySQLdb在Linux下的快速安装
http://www.jb51.net/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
   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() 
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Can the Python interpreter be deleted in Linux system? Can the Python interpreter be deleted in Linux system? Apr 02, 2025 am 07:00 AM

Regarding the problem of removing the Python interpreter that comes with Linux systems, many Linux distributions will preinstall the Python interpreter when installed, and it does not use the package manager...

How to solve the problem of Pylance type detection of custom decorators in Python? How to solve the problem of Pylance type detection of custom decorators in Python? Apr 02, 2025 am 06:42 AM

Pylance type detection problem solution when using custom decorator In Python programming, decorator is a powerful tool that can be used to add rows...

How to solve permission issues when using python --version command in Linux terminal? How to solve permission issues when using python --version command in Linux terminal? Apr 02, 2025 am 06:36 AM

Using python in Linux terminal...

What should I do if the '__builtin__' module is not found when loading the Pickle file in Python 3.6? What should I do if the '__builtin__' module is not found when loading the Pickle file in Python 3.6? Apr 02, 2025 am 07:12 AM

Error loading Pickle file in Python 3.6 environment: ModuleNotFoundError:Nomodulenamed...

How to monitor system performance through Debian logs How to monitor system performance through Debian logs Apr 02, 2025 am 08:00 AM

Mastering Debian system log monitoring is the key to efficient operation and maintenance. It can help you understand the system's operating conditions in a timely manner, quickly locate faults, and optimize system performance. This article will introduce several commonly used monitoring methods and tools. Monitoring system resources with the sysstat toolkit The sysstat toolkit provides a series of powerful command line tools for collecting, analyzing and reporting various system resource metrics, including CPU load, memory usage, disk I/O, network throughput, etc. The main tools include: sar: a comprehensive system resource statistics tool, covering CPU, memory, disk, network, etc. iostat: disk and CPU statistics. mpstat: Statistics of multi-core CPUs. pidsta

How to ensure that the child process also terminates after killing the parent process via signal in Python? How to ensure that the child process also terminates after killing the parent process via signal in Python? Apr 02, 2025 am 06:39 AM

The problem and solution of the child process continuing to run when using signals to kill the parent process. In Python programming, after killing the parent process through signals, the child process still...

How to solve the error problem encountered when creating a project of HttpRunner? How to solve the error problem encountered when creating a project of HttpRunner? Apr 02, 2025 am 06:33 AM

Solve the problem of errors in creating a scaffolding project by HttpRunner. When using HttpRunner for interface testing, its scaffolding function is often used to create a project. �...

See all articles