当前位置:首页 » 编程语言 » mysqldbpython安装

mysqldbpython安装

发布时间: 2022-10-10 06:24:02

1. 如何用python3连接mysql数据库

python3使用PyMysql连接mysql数据库
python语言的3 x完全不向前兼容,导致我们在python2 x中可以正常使用的库,到了python3就用不了了 比如说mysqldb目前MySQLdb并不支持python3
python语言的3.x完全不向前兼容,导致我们在python2.x中可以正常使用的库,到了python3就用不了了.比如说mysqldb
目前MySQLdb并不支持python3.x , Python3.x连接MySQL的方案有:oursql, PyMySQL, myconnpy 等
下面来说下python3如何安装和使用pymysql,另外两个方案我会在以后再讲。
1.pymysql安装
pymysql就是作为python3环境下mysqldb的替代物,进入命令行,使用pip安装pymysql

1

pip install pymysql3

2.pymysql使用
如果想使用mysqldb的方式,那么直接在py文件的开头加入如下两行代码即可。

1
2
3
4

#引入pymysql
import pymysql
#当成是mysqldb一样使用,当然也可以不写这句,那就按照pymysql的方式
pymysql.install_as_MySQLdb()

2. ubuntu mysqldb python2.7怎么安装

示例环境:系统——Ubuntu 12.04LTS
安装准备:python(系统已自带)、mysql-server、mysql-python

参考步骤:

1. 安装mysql-server
这里如果采用sudo apt-get install mysql-server安装的话,是没有mysql_config的,解决方法:
sudo apt-get install libmysqld_dev,这时就有了mysql_config了。

2. 下载MySQL-python-1.2.4b4.tar.gz,解压缩,进入MySQL-python-1.2.4b4,编辑site.cfg,
把mysql_config那一行取消注释,并改成你自己系统安装的mysql路径,个人电脑为/usr/bin/mysql_config。

3. 接下来执行安装命令
sudo python setup.py install

4. 验证安装是否成功,执行如下命令,如果没有报错就说明已安装成功。
import MySQLdb

3. python怎么安装mysqldb unable to find vcvarsall.bat

今天在安装reportlab时老是发生Unable to find vcvarsall.bat的错误,上网找了一下,在eddsn找到了“Unable to find vcvarsall.bat” error when trying to install rdflib这么一篇文章,解决了问题。方法如下:
首先安装MinGW,在MinGW的安装目录下找到bin的文件夹,找到mingw32-make.exe,复制一份更名为make.exe;
把MinGW的路径添加到环境变量path中,比如我把MinGW安装到D:\MinGW\中,就把D:\MinGW\bin添加到path中;
打开命令行窗口,在命令行窗口中进入到要安装代码的目录下;
输入如下命令就可以安装了。
setup.py install build --compiler=mingw32
简单的在windows安装pygraphiviz的过程如下:
1. 首先安装graphviz, http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.28.0.msi
2. 下载pygraphviz源码包,http://pypi.python.org/packages/source/p/pygraphviz/pygraphviz-1.1.zip
3. 解压
1. 修改setup.py,三个地方要改
library_path=r'D:\Program Files (x86)\Graphviz 2.28\lib\release\lib' #按你的graphviz路径修改
include_path=r'D:\Program Files (x86)\Graphviz 2.28\include\graphviz' #按你的graphviz路径修改
2. 修改文件unixcompiler.py,一般是285行(“C:\python27\lib\distutils\unixcompiler.py")如下:
old: compiler = os.path.basename(sysconfig.get_config_var("CC"))
new: compiler = "gcc"
编译完pygraphviz后,记得改回去。

4. python setup.py build -c mingw32 要先确定已安装mingw32
5. 手工拷贝pygraphviz目录(像:D:\Downloads\pygraphviz\build\lib.win32-2.7) 到python的site-packages下:C:\Python27\Lib\site-packages
6. 检查下是否安装成功
import pygraphviz

按上述方法基本就可以安装成功。

但是,我在这个过程中碰见如下几个问题:
1. 尝试用python setup.py build -c mingw32的时候,碰到:gcc: 错误:unrecognized command line option ‘-mno-cygwin’
错误如下:
running build_ext
building 'pygraphviz._graphviz' extension
d:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall "-ID:\Program Files (x86)\Graphviz 2.28\include\grap
hviz" -ID:\Python\Python27\include -ID:\Python\Python27\PC -c pygraphviz/graphviz_wrap.c -o build\te
mp.win32-2.7\Release\pygraphviz\graphviz_wrap.o
gcc: 错误:unrecognized command line option ‘-mno-cygwin’
error: command 'gcc' failed with exit status 1
原因:
mingw版本太新了...无语...找了个老版本的mingw32就可以了。

2. 编译过程中,碰见:cannot find -lcgraph
错误如下:
D:\Downloads\pygraphviz>python setup.py build -c mingw32
elease\libth=D:\Program Files (x86)\Graphviz 2.28\lib
include_path=D:\Program Files (x86)\Graphviz 2.28\include\graphviz
running build
running build_py
running build_ext
building 'pygraphviz._graphviz' extension
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall "-ID:\Program Files (x86)\Graphviz 2.28\include\grap
hviz" -ID:\Python\Python27\include -ID:\Python\Python27\PC -c pygraphviz/graphviz_wrap.c -o build\te
mp.win32-2.7\Release\pygraphviz\graphviz_wrap.o
pygraphviz/graphviz_wrap.c: In function 'agattr_label':
pygraphviz/graphviz_wrap.c:2855: warning: return makes integer from pointer without a cast
writing build\temp.win32-2.7\Release\pygraphviz\_graphviz.def
C:\MinGW\bin\gcc.exe -mno-cygwin -shared -s build\temp.win32-2.7\Release\pygraphviz\graphviz_wrap.o
elease\lib" -LD:\Python\Python27\libs -LD:\Python\Python27\PCbuild "-Wl,-RD:\Program Files (x86)\Gra
elease\lib" -lcgraph -lcdt -lpython27 -lmsvcr90 -o build\lib.win32-2.7\pygraphviz\_graphviz.pyd
c:/mingw/bin/../lib/gcc/mingw32/4.4.1/http://www.cnblogs.com/http://www.cnblogs.com/mingw32/bin/ld.exe: cannot find -lcgraph
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
原因:
library_path没有设置对。这个要说起windows路径的问题。如果我们把一个路径赋值给一个字符串的时候,简单说有两种
办法保持路径不会被转义或者截断:
1. 使用原始字符串r:
library_path=r'D:\Program Files (x86)\Graphviz 2.28\lib\release\lib'
include_path=r'D:\Program Files (x86)\Graphviz 2.28\include\graphviz'
2. 自己把'\'改为'\\':
library_path='D:\\Program Files (x86)\\Graphviz 2.28\\lib\\release\\lib'
include_path='D:\\Program Files (x86)\\Graphviz 2.28\\include\\graphviz'

3. 测试是否安装成功的时候,发现:ImportError: No mole named _graphviz
错误如下:
D:\Downloads\pygraphviz>python
Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "right", "credits" or "license" for more information.
>>> import pygraphviz
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
File "pygraphviz\__init__.py", line 54, in <mole>
from agraph import AGraph, Node, Edge, Attribute, ItemAttribute
File "pygraphviz\agraph.py", line 19, in <mole>
import graphviz as gv
File "pygraphviz\graphviz.py", line 7, in <mole>
import _graphviz
ImportError: No mole named _graphviz
原因:
不要运行python命令在pygraphviz目录下,随便新开个cmd窗口,再次运行python命令并且尝试import,这下就可以了。

最近在编译安装Python的MysqlDb插件的时候,提示“unable to find vcvarsall.bat”,上网搜索了一下,知道是需要一个c++编译器,于是装了一个visual c++ 2010 express,并把vcvarsall.bat这个脚本的路径加到了path里面,结果再编译的时候还是继续报同样的错误,本来还以为是编译器没装好,于是装了全套的Visual Studio 2010,结果还是不行。后来又在网上继续搜索,终于找到个帖子说vc2010不行,要用vc2008,于是去微软网站下载了一个visual c++ 2008 express,安装之后,把脚本的路径加到path里面,终于不报这个错误了。

在用C给python3.写扩展时遇到如下问题:
写好*mole.c和setup.py文件后执行
python setup.py build
报unable to find vcvarsall.bat
我机器上有vs2005和vc6,但是还是报错。
搜索很多资料:
网上提供解决办法如下:
下载mingw环境,添加环境变量
使用
python setup.py build –compiler=mingw32
这个办法感觉只是绕过了这个问题,并不是真正解决问题,而且我系统中python是用vs编译的,扩展模块却用mingw-gcc编译,感觉可能有问题。
但网上对此就缺少详细的说明
经过对C:/Python32/Lib/distutils目录下.py文件的仔细翻阅,发现“unable to find vcvarsall.bat”这句话出在msvc9compiler.py中
再研究这个文件发现问题所在了:
它是在注册表中寻找到vs的目录,再去在vs目录下找vcvarsall.bat。
但是问题就出在python32里面默认是vc9.0也就是vs2008所以它在注册表里面找不到键值返回None
proctdir = Reg.get_value(r"%s/Setup/VC" % vsbase,
"proctdir")
vsbase值为:Software/Microsoft/VisualStudio/9.0
具体修改代码如下:
msvc9compiler.py中
def find_vcvarsall(version) 用于查找vcvarsall.bat version就是版本号,实际上是9.0
vc_env = query_vcvarsall(VERSION, plat_spec)
VERSION = get_build_version() 因为python32自己是由vc9.0构建的所以VERSION是9.0
修改MSVCCompiler函数:
vc_env = query_vcvarsall(VERSION, plat_spec)
为:
vc_env = query_vcvarsall(8.0, plat_spec)
不过还有这句话:
if VERSION < 8.0:
raise DistutilsPlatformError("VC %0.1f is not supported by this mole" % VERSION)
看来,python3.2中的distutils只支持vc8.0以上,即vs2005以上的编译器。

4. python 安装mysqldb模块 需要本地安装数据库么

以前流行使用 MySQLdb,可使用pip安装:

pip install mysql-python

也可以选择mysql自己提供的库来连接

5. 怎么用python连接mysql数据库

在 Python 语言环境下我们这样连接数据库。

In [1]: from mysql import connector

In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")

但是连接数据库的背后发生了什么呢?


答案

当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由MySQL 协议规定。MySQL 协议:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整个连接的过程中 MySQL 服务端与驱动程序之间,按如下的次序发送了这些包。

  • MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。

  • 2. MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。

    3. MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。

    4. MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。

6. python mysqldb 安装问题

mysqldb只有python2.5版的,2.6的需要额外的东东,我也记不清了,不过有人把2.6对应的东东弄成一个exe了,直接运行就装上了,也不需要额外配置啥的,你留个邮箱啥的,我给你传过去吧。

import MySQldb?
还是MySQLdb?
l要大写L.
另外:_mysql.pyd是在python安装目录\Lib\site-packages下的

7. 如何用python的pip安装mysqldb

如何用python的pip安装mysqldb
python2.7和python3.4你可以看成是两个软件,你在一个里装了,另一个里当然不能用,你需要在python3.4里也安装mysqldb才可以,你可以通过pip install mysql-python,或者python3 setup.py install 来安装。

到官方下载MySQL for Python
然后解压,打开README:
里面有安装过程:
$ tar xfz MySQL-python-1.2.1.tar.gz
$ cd MySQL-python-1.2.1
$ # edit site.cfg if necessary
$ python setup.py build
$ sudo python setup.py install # or su first

8. 如何使用python连接mysql数据库

在 Python 语言环境下我们这样连接数据库。

In [1]: from mysql import connector

In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")

但是连接数据库的背后发生了什么呢?


答案

当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由MySQL 协议规定。MySQL 协议:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整个连接的过程中 MySQL 服务端与驱动程序之间,按如下的次序发送了这些包。

  • MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。

  • 2. MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。

    3. MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。

    4. MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。

9. 如何安装python的MySQLdb模块

到官方下载MySQL for Python

然后解压,打开README:

里面有安装过程:

$tarxfzMySQL-python-1.2.1.tar.gz
$cdMySQL-python-1.2.1
$#editsite.cfgifnecessary
$pythonsetup.pybuild
$sudopythonsetup.pyinstall#orsufirst

不过在python setup.py build时报错:

ImportError: No mole named setuptools

ubuntu下安装:

sudo apt-get install python-setuptools

python-setuptools : Python Distutils Enhancements (setuptools compatibility)

然后再次python setup.py build,又报错:

EnvironmentError: mysql_config not found

因为mysql_config是属于MySQL开发用的文件,而使用apt-get安装的MySQL是没有这个文件的,于是在包安装器里面寻找

sudo apt-get install libmysqld-dev

libmysqld-dev : MySQL embedded database development files

再次运行python setup.py build,报错:

building ‘_mysql’ extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,’final’,0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
In file included from _mysql.c:29:0:
pymemcompat.h:10:20: fatal error: Python.h: No such file or directory

解决方案,

sudo apt-get install python-dev

python-dev : header files and a static library for Python (default)

然后就按照README里的:

$ python setup.py build
$ sudo python setup.py install

测试:

>>>import MySQLdb

没有报错即可。

10. 如何在virtualenv虚拟环境中安装mysql-python

接触过virtualenv后,想在这个虚拟环境中安装独立的开发环境。在安装MySQLdb时遇到错误
pc 09:09:30
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 50, in run_setup
lambda: execfile(
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 100, in run
return func()
File "/home/pc/work/VENV/py3/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 52, in <lambda>
{'__file__':setup_script, '__name__':'__main__'}
File "setup.py", line 17, in <mole>
File "/tmp/easy_install-FtC77Z/MySQL-python-1.2.5/setup_posix.py", line 43, in get_config
File "/tmp/easy_install-FtC77Z/MySQL-python-1.2.5/setup_posix.py", line 25, in mysql_config
EnvironmentError: mysql_config not found

在国内的网上找了好长时间也没有找到办法,大多数是讲如何安装mysql-python的。先说一下解决过程吧
我是在ubuntu14上安装有virtualenv,在全局环境中安装了mysql-server,安装命令
sudo apt-get install mysql-server

后续过程都是在虚拟环境中进行的。我的是py3
开始找到要想使用mysql需要安装libmysqlclient-dev
安装过后在安装mysql-python还是出错
(py3)pc@pc-virtual-machine:~/work/VENV/py3/bin$ pip install mysql-python
Downloading/unpacking mysql-python
Downloading MySQL-python-1.2.5.zip (108kB): 108kB downloaded
Running setup.py (path:/home/pc/work/VENV/py3/build/mysql-python/setup.py) egg_info for package mysql-python

Installing collected packages: mysql-python
Running setup.py install for mysql-python
building '_mysql' extension
i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DTAOCRYPT_DISABLE_X86ASM -g -DNDEBUG
_mysql.c:29:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'i686-linux-gnu-gcc' failed with exit status 1
Complete output from command /home/pc/work/VENV/py3/bin/python -c "import setuptools, tokenize;__file__='/home/pc/work/VENV/py3/build/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-V4wHKY-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/pc/work/VENV/py3/include/site/python2.7:
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.7
ing _mysql_exceptions.py -> build/lib.linux-i686-2.7
creating build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/__init__.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/converters.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/connections.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/cursors.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/release.py -> build/lib.linux-i686-2.7/MySQLdb
ing MySQLdb/times.py -> build/lib.linux-i686-2.7/MySQLdb
creating build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/__init__.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/CR.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/ER.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/FLAG.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/REFRESH.py -> build/lib.linux-i686-2.7/MySQLdb/constants
ing MySQLdb/constants/CLIENT.py -> build/lib.linux-i686-2.7/MySQLdb/constants
running build_ext
building '_mysql' extension
creating build/temp.linux-i686-2.7
i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DTAOCRYPT_DISABLE_X86ASM -g -DNDEBUG
_mysql.c:29:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'i686-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Cleaning up...
Command /home/pc/work/VENV/py3/bin/python -c "import setuptools, tokenize;__file__='/home/pc/work/VENV/py3/build/mysql-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-V4wHKY-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/pc/work/VENV/py3/include/site/python2.7 failed with error code 1 in /home/pc/work/VENV/py3/build/mysql-python
Storing debug log for failure in /home/pc/.pip/pip.log
看到如果没有安装python-dev,需要安装这个就开始安装
sudo apt-get install python-dev
此时在安装mysql-python就可以了,所以安装步骤是
1 安装python-dev
sudo apt-get install python-dev

2 安装 libmysqlclient-dev
sudo apt-get install libmysqlclient-dev

3 安装mysql-python
pip install mysql-python

最后进行验证
(py3)pc@pc-virtual-machine:~/work/VENV/py3/bin$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> import MySQLdb
>>>
如果导入没有问题就说明导入成功了。

热点内容
服务器搭建飞机场 发布:2024-12-31 01:16:08 浏览:192
c语言小数点 发布:2024-12-31 01:13:07 浏览:316
安卓手机补电功能有什么用 发布:2024-12-31 01:09:27 浏览:717
江淮老款帅铃什么配置 发布:2024-12-31 01:08:04 浏览:755
服务器配置32位的地址 发布:2024-12-31 01:07:51 浏览:565
格子计算法 发布:2024-12-31 01:06:20 浏览:856
php官网下载 发布:2024-12-31 01:05:43 浏览:31
线性结构采取的存储结构 发布:2024-12-31 00:47:18 浏览:248
vivoy85忘记密码怎么办 发布:2024-12-31 00:47:16 浏览:735
叉叉脚本编写 发布:2024-12-31 00:46:30 浏览:735