我应该使用哪个Python 3库来操作MySQL?

9
据我所知,MySQLdb仍未移植到Python 3。似乎pypy上有另一个名为PyMySQL的库,但是Python 3的安装方式看起来很奇怪(运行.sh脚本?)。还有一个名为PyMySQL3的库,但我找不到关于它的信息。
现在使用Python 3与MySQL的首选方法是什么?
是否有一种优雅的解决方案可以通过pip或python setup.py install命令安装?
2个回答

4
我曾在几个 Python 3 项目中使用基本的 MySQL mysql-connector,还使用了SQLAlchemy。
我也尝试过PyMySQL,但如果我没记错的话,配置起来更困难。

太棒了,mysql-connector 似乎正在工作。由 mysql 团队支持,我可以很容易地使用 pip (pip-python3 install mysql-connector-python) 安装它。我刚刚创建了一个表。我希望其他所有东西也能正常工作,但我看不出为什么会有问题。非常感谢! - John Smith Optional
1
mysql-connector 是外部托管的,因此在2015年3月,安装它需要执行 pip3 install mysql-connector-python --allow-external mysql-connector-python - John Smith Optional
1
更新:现在在2016年10月,“--allow-external”选项已被弃用。要安装mysql-connector,您必须直接指定设置存档的URL(托管在mysql服务器上):“pip3 install http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df”。可以在https://pypi.python.org/pypi/mysql-connector-python/上获取文件的最新URL。 - John Smith Optional

1

对于那些移植先前使用Python 2中的MySQL-python代码(使用import MySQLdb导入),可替代方案是mysqlclient,它是MySQL-python的分支,有以下特点:

  1. 使用相同的名称导入(MySQLdb
  2. 保持C加速以提高速度
  3. 与Python 2和3兼容,并修复了原始MySQL-python中的一些错误

mysql-connector也可以(这是Oracle开发的解决方案),但接口略有不同,并且由于实现在Python中,因此速度较慢。同样适用于PyMySQL。如果性能/兼容性不重要,则所有这些都很好,但为了获得最大性能和与MySQL-python/MySQLdb的完全兼容性,您需要mysqlclient(对于一个代码基础,否则完全符合Py2/Py3兼容性,它将在任何版本上工作,并且不需要更改源代码,只需在setup.py中声明依赖项即可)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接