安装PyMySQL

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

$ pip3 install PyMySQL

如果你的系统不支持 pip 命令,可以使用以下方式安装:

1、使用 git 命令下载安装包安装(你也可以手动下载):

$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL/
$ python3 setup.py install

2、如果需要制定版本号,可以使用 curl 命令来安装:

$ # X.X 为 PyMySQL 的版本号
$ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz
$ cd PyMySQL*
$ python3 setup.py install
$ # 现在你可以删除 PyMySQL* 目录

安装的过程中可能会出现"ImportError: No module named setuptools"的错误提示,意思是你没有安装setuptools

$ wget https://bootstrap.pypa.io/ez_setup.py
$ python3 ez_setup.py

安装出错, 提示site-packages目录不存在

wenqidongdeMBP:PyMySQL wenqidong$ python3 ez_setup.py 
ez_setup.py is deprecated and when using it setuptools will be pinned to 33.1.1 since it's the last version that supports setuptools self upgrade/installation, check https://github.com/pypa/setuptools/issues/581 for more info; use pip to install setuptools
Downloading https://pypi.io/packages/source/s/setuptools/setuptools-33.1.1.zip
Extracting in /var/folders/by/r8gc8dds4f54r05n76g9bky00000gn/T/tmpwhjvj4vq
Now working in /var/folders/by/r8gc8dds4f54r05n76g9bky00000gn/T/tmpwhjvj4vq/setuptools-33.1.1
Installing Setuptools
running install
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 2] No such file or directory: '/usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/test-easy-install-75924.write-test'

手动创建目录,然后安装成功

wenqidongdeMBP:PyMySQL wenqidong$ cd /usr/local/Cellar/python/3.7.2_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/
wenqidongdeMBP:python3.7 wenqidong$ mkdir site-packages
wenqidongdeMBP:PyMySQL wenqidong$ python3 ez_setup.py 

继续安装PyMySQL

python3 setup.py install

安装完后,进入python3命令行,测试一下连接

wenqidongdeMBP:PyMySQL wenqidong$ python3
Python 3.7.2 (default, Jan 13 2019, 12:50:01) 
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymysql
>>> db = pymysql.connect("localhost","dev","","test")
>>> cursor = db.cursor()
>>> cursor.execute("select version()")
1
>>> data = cursor.fetchone()
>>> print(data)
('8.0.12',)
>>> db.close()
>>>