带有 MySQL 数据库的 Python 3.4.0

Posted

技术标签:

【中文标题】带有 MySQL 数据库的 Python 3.4.0【英文标题】:Python 3.4.0 with MySQL database 【发布时间】:2014-06-16 01:35:33 【问题描述】:

我已经安装了 Python 版本 3.4.0,我想用 mysql 数据库做一个项目。我下载并尝试安装 MySQLdb,但对于这个版本的 Python 没有成功。

有什么建议可以解决这个问题并正确安装吗?

【问题讨论】:

【参考方案1】:

MySQLdb 不支持 Python 3,但它不是 Python 的唯一 MySQL 驱动程序。

mysqlclient 本质上只是 MySQLdb 的一个分支,其中合并了 Python 3 支持(以及一些其他改进)。

PyMySQL 是一个纯python MySQL 驱动程序,这意味着它速度较慢,但​​它不需要在客户端机器上安装已编译的 C 组件或 MySQL 库和头文件。它支持 Python 3。

另一种选择是简单地使用另一个数据库系统,例如PostgreSQL。

【讨论】:

我也尝试了 pymysql 但仍然没有。我将尝试使用 git repo 并查看是否可以使其正常工作,否则我将重新安装 3.4 并安装 2.7 版本... 你能具体说明一下 pymysql 出了什么问题吗? 我实际上只是让它工作,我在使用 pip 安装工具时遇到了一些问题,这就是为什么我无法安装任何东西但我修复了它,即使我安装了 MySQLdb 仍然无法工作这次是正确的,但是然后我运行了 pip install PyMySQL 并且在 PyMySQL 上运行良好我的代码显示了我的 MySQL 数据库中的所有内容,非常感谢您的回答! 太好了,很高兴成功了!如果您在使用pip 时遇到问题,我建议您考虑使用virtualenv 并以用户身份运行virtualenv 中的所有pip 命令(而不是root/sudo @madzohan Django 文档现在建议您使用 mysqlclient 作为主要的 MySQL 数据库驱动程序。尝试安装它,看看它是否有效。如果没有(可能是因为您的 Django 版本太旧?),或者您仍然想使用 pymysql,请参考本页的第二个答案:***.com/questions/7224807/…【参考方案2】:

使用mysql-connector-python。我更喜欢使用来自PyPI 的 pip 安装它:

pip install --allow-external mysql-connector-python mysql-connector-python

看看它的documentation 和examples。

如果您要使用池,请确保您的数据库有足够的可用连接 因为默认设置可能不够。

【讨论】:

对于任何不知道的人来说,这是由Oracle(现在拥有MySQL)制造的适配器,因此它应该非常“接近数据库”。它适用于 3.4,有很好的文档,并提供了许多 PEP249 中没有的有用方法和属性。 (这是一件好事吗?这取决于您是否关心从数据库中提取最多的汁液,或者您是否希望保持接近 PEP249 以便以后轻松切换数据库。)他们宣布了 C 版本( 2.1) 但没有说什么时候出来。 zx81 mysql-connector-python 的一个好处是没有依赖关系,不需要安装 mysql 或 mysql-client,这对于保持较小的安装很方便 我无法使用pip 安装它... 根本找不到 mysql-connector-python 的发行版 不幸的是,这似乎不再起作用,至少在 python 3.5 上使用 pip 8.1.2。我收到此错误DEPRECATION: --allow-external has been deprecated and will be removed in the future. Due to changes in the repository protocol, it no longer has any effect. 是的不再有效。我不知道有什么替代品,因为今年只有 postgresql/redshift 没有使用过 mysql。【参考方案3】:

安装点子:

apt-get install pip

要从 Python 访问 MySQL,请安装:

pip3 install mysqlclient

【讨论】:

如何导入这个模块?【参考方案4】:

通过 Ubuntu 软件中心或 Synaptic 软件包管理器可以使用 Ubuntu 解决方案。这会将 Python 版本 3.4.0 连接到 MySQL。下载“python3-mysql.connector”版本1.1.6-1。

请注意,连接语法使用“MySQLdb”。 改为阅读:Connecting to MySQL Using Connector/Python

【讨论】:

【参考方案5】:
sudo apt-get install python3-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install zlib1g-dev
sudo pip3 install mysqlclient

这对我有用!

【讨论】:

【参考方案6】:

我是这样解决的: 从here 下载压缩包并按照以下说明操作:

unzip  /path/to/downloads/folder/mysql-connector-python-VER.zip  

如果你有.gz,你可以使用 ->

tar xzf mysql-connector-python-VER.tar.gz 

然后:

cd mysql-connector-python-VER  # move into the directory

sudo python3 setup.py install # NOTICE I USED PYTHON3 INSTEAD OF PYTHON

你可以阅读它here

【讨论】:

【参考方案7】:

目前看来 Ubuntu 15.10 有一个但是带有 python3 和 pip3。

如this article 中所述。

问题使得 pip3 安装到 python3.5 而 python3 实际上正在运行 python3.4 :(

在通过更新提供适当的解决方案之前,您可以执行以下操作之一:

运行

python3 -m pip install pymysql

而不是

pip3 install pymysql

(或任何其他包)

现在

import pymysql

应该在 python3 和 idle3 中工作。

或者,如果您明确需要 3.5,您可以使用明确的 python3.5 而不是 python3。但 idle3 仍将指向 3.4...

【讨论】:

我使用“python -m pip install pymysql”而不是“python3 -m pip install pymysql”!【参考方案8】:

mysqlclient 是 MySQLdb 的一个分支,可以作为 Python 3.4 支持的替代品。如果您在 Windows 上构建它时遇到问题,可以从 Christoph Gohlke's Unofficial Windows Binaries for Python Extension Packages 下载它

【讨论】:

【参考方案9】:

或者,您可以使用mysqlclient 或oursql。对于 oursql,使用 oursql py3k 系列 作为我的链接指向。

【讨论】:

【参考方案10】:

也许您可以使用解决方法并尝试以下方法:

import datetime
#import mysql
import MySQLdb
conn = MySQLdb.connect(host = '127.0.0.1',user = 'someUser', passwd = 'foobar',db = 'foobardb')
cursor = conn.cursor()

【讨论】:

开个玩笑;) 是的,我知道这里的人太认真了哈哈【参考方案11】:

对于 fedora 和 python3 使用:dnf install mysql-connector-python3

【讨论】:

以上是关于带有 MySQL 数据库的 Python 3.4.0的主要内容,如果未能解决你的问题,请参考以下文章

通过带有 Python3 的 Jupyter Notebook 访问 MySQL 数据库

使用带有外部变量的python将数据插入mysql

带有Python的Mysql无法插入具有自动增量ID的记录,为啥?

在python中保存带有列表列的数据框

带有逗号分隔值的 Codeigniter Mysql 列

Python多任务之多进程开发