在 16.04上,如何从 python 3连接到 MySQL db

作者:无名 - 电脑 -

问题:

为了安装 python 3,我在下面的指南中安装了mysql连接器。

https://stackoverflow.com/questions/43501080/how-to-connect-to-mysql-db-from-python-3-on-ubuntu-16

不幸的是,当我键入:

(env) pip install mysqlclient

collecting mysqlclient

downloading mysqlclient-1.3.12.tar.gz (89kb)

100% |████████████████████████████████| 92kb 1.4mb/s

building wheels for collected packages: mysqlclient

running setup.py bdist_wheel for mysqlclient.. . error

complete output from command/home/hugh/sat/env/bin/python3 -u -c"import setuptools, tokenize;__file__='/tmp/pip-build-sbgaxask/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d/tmp/tmpqgsp3qwwpip-wheel- --python-tag cp35:

running bdist_wheel

running build

running build_py

creating build

creating build/lib.linux-x86_64-3.5

copying _mysql_exceptions.py -gt; build/lib.linux-x86_64-3.5

creating build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/__init__.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/compat.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/connections.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/converters.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/cursors.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/release.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/times.py -gt; build/lib.linux-x86_64-3.5/mysqldb

creating build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/__init__.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/client.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/cr.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/er.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/field_type.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/flag.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/refresh.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

running build_ext

building '_mysql' extension

creating build/temp.linux-x86_64-3.5

x86_64-linux-gnu-gcc -pthread -dndebug -g -fwrapv -o2 -wall -wstrict-prototypes -g -fstack-protector-strong -wformat -werror=format-security -wdate-time -d_fortify_source=2 -fpic -dversion_info=(1,3,12,'final',0) -d__version__=1.3.12 -i/usr/include/mysql -i/usr/include/python3.5m -i/home/hugh/sat/env/include/python3.5m -c _mysql.c -o build/temp.linux-x86_64-3.5/_mysql.o

_mysql.c:32:20: fatal error: python.h: no such file or directory

compilation terminated.

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

----------------------------------------

failed building wheel for mysqlclient

running setup.py clean for mysqlclient

failed to build mysqlclient

installing collected packages: mysqlclient

running setup.py install for mysqlclient.. . error

complete output from command/home/hugh/sat/env/bin/python3 -u -c"import setuptools, tokenize;__file__='/tmp/pip-build-sbgaxask/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record/tmp/pip-d4xggqn_-record/install-record.txt --single-version-externally-managed --compile --install-headers/home/hugh/sat/env/include/site/python3.5/mysqlclient:

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-3.5

copying _mysql_exceptions.py -gt; build/lib.linux-x86_64-3.5

creating build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/__init__.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/compat.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/connections.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/converters.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/cursors.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/release.py -gt; build/lib.linux-x86_64-3.5/mysqldb

copying mysqldb/times.py -gt; build/lib.linux-x86_64-3.5/mysqldb

creating build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/__init__.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/client.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/cr.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/er.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/field_type.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/flag.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

copying mysqldb/constants/refresh.py -gt; build/lib.linux-x86_64-3.5/mysqldb/constants

running build_ext

building '_mysql' extension

creating build/temp.linux-x86_64-3.5

x86_64-linux-gnu-gcc -pthread -dndebug -g -fwrapv -o2 -wall -wstrict-prototypes -g -fstack-protector-strong -wformat -werror=format-security -wdate-time -d_fortify_source=2 -fpic -dversion_info=(1,3,12,'final',0) -d__version__=1.3.12 -i/usr/include/mysql -i/usr/include/python3.5m -i/home/hugh/sat/env/include/python3.5m -c _mysql.c -o build/temp.linux-x86_64-3.5/_mysql.o

_mysql.c:32:20: fatal error: python.h: no such file or directory

compilation terminated.

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

----------------------------------------

command"/home/tom/sat/env/bin/python3 -u -c"import setuptools, tokenize;__file__='/tmp/pip-build-sbgaxask/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record/tmp/pip-d4xggqn_-record/install-record.txt --single-version-externally-managed --compile --install-headers/home/hugh/sat/env/include/site/python3.5/mysqlclient" failed with error code 1 in/tmp/pip-build-sbgaxask/mysqlclient/

你能不能告诉我。


回答 1:

你需要 python 开发库来构建 python 模块:

sudo apt install python3-dev libpython3-dev

你应该小心点。

但是在ubuntu中添加这个方法的推荐方法是使用ubuntu库。 因此,要为python3安装mysql绑定,运行

sudo apt install python3-mysqldb

这将安装从 python 3连接到mysql需要的绑定,并确保它将随你的系统的其他包一起升级。 除非你特别需要更新版本,否则该软件包在ubuntu存储库中不可以用。


回答 2:

mysqldb不能与 python 3一起工作。 如果可能的话,我建议你使用的mysql连接器 python。 因为它同时适用于 python 和 3,而且它为使用 python的mysql的官方oracle驱动程序付出了代价。

pip install mysql-connector-python

如果pip失败,你可以从 https://dev.mysql.com/downloads/connector/python/ 下载安装程序。

使用deb软件包安装mysql连接器参考本指南下载和安装。

这里模块遵循 python 数据库api规范 v2.0 ( pep 249 )。

然后使用 connect() 连接器 python的方法连接到 mysql.pass 中所需的参数到 connect() 方法。 换句话说,主机,用户名,密码和数据库名称




文章标签:python-3

IT人知识库 原文链接:http://www.itpeo.net/389619/4643283.html





标签 如何连接

无线 Ubuntu 16.04无线网络未显示,没有可用的以太网端口

问题:我曾尝试使用在线找到的解决方案解决问题,但无法启动 wifi ( 我认为这个司机没有找到)。 知道怎么解决?### ...

升级到 18.04后,pulseaudio噼啪声和延迟的声音

问题:我刚升到 18.04,我发现耳机的声音,无论是插入前端或者后端端口,是非常快速和延迟。 这个问题不存在于 17.0 ...

在卸载Ubuntu之后,双重引导如何修复 Ubuntu 17.10 BIOS的损坏,

问题:我有一个联想 y50-70,显然我受到了这个问题 https://bugs.launchpad.net/ubunt ...

驱动器英特尔Apollo Lake(J3455)随机频繁死机在用户界面和MCE错误启动,

问题:我遇到asrock j3455-itx运行ubuntu 16.10的问题。第一个值得注意的问题与系统中的随机死机有 ...

在启动时,bash Crontab运行脚本

问题:我有一个执行命令的. sh。 我想使用-e并输入文件 @reboot/path/to/command.执行这个命令 ...

在 logo 上,引导安装/实时引导卡

问题:注意:我是新手,而且没有远程想法,所以我会非常详细,所以我会详细描述所有发生的事情。我使用华硕x550v笔记本电脑 ...

更新 Ubuntu Touch: 强制 OTA 13重新安装?

问题:今天早上我在我的meizu 5上提出了 ota-13 更新,我在 wi-fi 上的"单击"上。 下载是快速( ~ ...

rfedfre

在ssh中,openssh未满足的依赖项错误

问题:尝试将 ubuntu 11.10升级至 14.04. 到目前为止,一切都正常,lampp。ftp。web。open ...

rfedfre

如何将蓝牙耳机连接到 Apple TV

无需在起居室地板上悬挂耳机线: 你可以轻松对你的苹果电视配对无线蓝牙耳机。我为什么要这么做?尽管人们可以能希望将一对无线 ...

rfedfre

VR几乎在这里:我需要做什么?

经过多年的等待,几十个不同的开发工具,比我们可以摇摇棒,真正沉浸的虚拟现实耳机。 这两种系统都准备好,但这些系统真的需要 ...

无线如何加载iwlwifi驱动程序?

问题:我的linux系统无法检测到无线驱动程序,所以,我必须手动加载它。我知道我的驱动程序是什么, 并且厌倦了这种方法, ...

apt从Ubuntu卸载 Deepin桌面环境

问题:我目前正在笔记本电脑上运行ubuntu gnome 17.04,一切很顺利。 今天我觉得有点无聊,所以我想我应该试 ...

在 Awesome Thunar,中,xubuntu默认应用程序打开文本文件

问题:我在 xubuntu 12.04使用 awesome wm。 在令人吃惊的会话中,如果我双击一个纯文本文件(。等等 ...

在Apache2上,访问其他文件夹,然后访问/var/www/html

问题:只是发现了这个;对于有apache问题的。 这个解决方案似乎是针对患者 xdhttp://sites.duke.e ...

脚本快速关闭的最简单方法

问题:有时我想迅速关闭。 ,我是指到 10秒。 假设我可以在前面预先准备的root 特权中运行任何脚本,并且在 5或者 ...

联想在那里任何地方都可以安装Ubuntu为我安装?

问题:我试过几天来在我的联想 ideapad z510上安装 ubuntu,我想放弃。 我真的觉得我喜欢 ubuntu, ...

在 ubuntu 13.04上,使用paprefs的声音同步输出不工作

问题:我使用相同的hdmi音频输出和笔记本电脑内置扬声器,通过paprefs创建的虚拟输出设备。 这在 12.10上工作 ...

Xfce4覆盖了我的GNOME通知( 通知 osd ) 我怎么才能让他们?

问题:我安装了 xfce4 ( sudo apt-get install xfce4 ) 现在,在普通的ubuntu ( ...

再次打开,18.04关闭设置设备屏幕显示中的显示,如何打开?

问题:在新安装 18.04,使用笔记本电脑和两个外部监视器,我关闭了笔记本显示器 settings-gt; device ...

14.04我无法获取有关名为'scip'的init进程的任何信息或者帮助,该进程具有日志/var/log/upstart/scip.log

问题:我的笔记本电脑正在运行 ubuntu 14.04,我有奇怪的wifi问题。 在查看 /var/log/syslog ...