在 Ubuntu 18.04 上为 python 安装 mysqlclient 时出错

     2023-02-24     223

关键词:

【中文标题】在 Ubuntu 18.04 上为 python 安装 mysqlclient 时出错【英文标题】:Error installing mysqlclient for python on Ubuntu 18.04 【发布时间】:2019-06-18 10:31:41 【问题描述】:

我在 Ubuntu 上安装了 Python 2.7.15rci 和 Python 3.6.7。当我在 virtualenv 上执行 'pip list' 时,它返回给我:

Django (2.1.5)
pip (9.0.1)
pkg-resources (0.0.0)
pytz (2018.9)
setuptools (39.0.1)
wheel (0.32.3)

我正在尝试安装 mysqlclient (pip install mysqlclient) 并返回错误。

  unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
  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/david/env/project/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pq18uxjj/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-y28h4ou0-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/david/env/project/include/site/python3.6/mysqlclient:
    /usr/lib/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'long_description_content_type'
      warnings.warn(msg)
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/__init__.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/_exceptions.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/compat.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/connections.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/converters.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/cursors.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/release.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/times.py -> build/lib.linux-x86_64-3.6/MySQLdb
    creating build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    running build_ext
    building 'MySQLdb._mysql' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/MySQLdb
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Dversion_info=(1,4,1,'final',0) -D__version__=1.4.1 -I/usr/include/mysql -I/home/david/env/project/include -I/usr/include/python3.6m -c MySQLdb/_mysql.c -o build/temp.linux-x86_64-3.6/MySQLdb/_mysql.o
    unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    ----------------------------------------
Command "/home/david/env/project/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-pq18uxjj/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-y28h4ou0-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/david/env/project/include/site/python3.6/mysqlclient" failed with error code 1 in /tmp/pip-build-pq18uxjj/mysqlclient/

所以,我尝试了不同的方法,例如:

sudo apt-get install python-dev
sudo apt-get install python3-dev
sudo apt-get install libmysqlclient-dev

还有一些……但它们都不适合我,问题仍然存在。 有什么建议吗?

谢谢!

【问题讨论】:

您需要根据文档安装default-libmysqlclient-dev,而不是libmysqlclient-dev 我也安装了default-libmysqlclient-dev,但是还是不行…… 你说你试过sudo apt-get install python-dev python3-dev,那些还在安装吗?还是每次都卸载?所有这些都需要安装。 这很奇怪,我刚刚在 Ubuntu 18.0.4 上使用默认 python (3.6) 安装它,没有任何问题。正是通过安装python3-dev gcc default-libmysqlclient-dev。这些就足够了。 我不知道为什么我没有安装这些库,但我安装了libssl-dev 并且它起作用了!谢谢! ;) 【参考方案1】:

您之前可以这样做:

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

来源:https://pypi.org/project/mysqlclient/

【讨论】:

特别是default-libmysqlclient-dev 有帮助。【参考方案2】:

我发现,几乎每个 Python 版本的解决方案都略有不同。对于那些使用不同版本的人,例如 Python 2.x、3.5 或 3.7,我找到了this:

第一部分

对于 Python 2.x 使用:

  $ sudo apt-get install python-dev

对于 Python 2.7 使用:

  $ sudo apt-get install libffi-dev

对于 Python 3.x 使用:

  $ sudo apt-get install python3-dev

对于 Python 3.4 使用:

  $ sudo apt-get install python3.4-dev

对于 Python 3.7 使用:

  $ sudo apt-get install python3.7-dev

对于 Python 3.8 使用:

  $ sudo apt-get install python3.8-dev

对于 Python 3.9 使用:

  $ sudo apt-get install python3.9-dev

第二部分

如果这仍然没有帮助,others 已经指出要安装

  $ sudo apt-get install build-essential

最后

  $ sudo apt-get install libssl-dev

但最后两个对我自己没有帮助 - 但希望这对你有帮助!

【讨论】:

【参考方案3】:

我正在使用python3.8。与大卫的回答类似,使用以下命令即可。

$ sudo apt-get install python3.8-dev

【讨论】:

【参考方案4】:

我想在我的 Ubuntu 18.04 上安装“Modoboa”邮件服务器包 (https://github.com/modoboa/modoboa),并使用 Apache 作为我的网络服务器,而不是 nginx。对于 Python 2.7,我需要 mysqlclient。以下软件包对我有用:

sudo apt-get install libssl-dev gcc python2.7-dev libmysqlclient-dev

【讨论】:

【参考方案5】:

这个问题在 Ubuntu 和 python 3+ 中一直存在。就我而言,我使用的是 Ubuntu 18.04,发现这个解决方案对 python 3.7.5 版很有用

步骤 1. 通过 sudo apt 安装 libpython3.7-dev

> sudo apt-get install libpython3.7-dev

第二步:安装mysqlclient

> python3 -m pip install mysqlclient==1.4.6

【讨论】:

谢谢,这解决了我的问题。你节省了我很多时间。【参考方案6】:

我指定了 python 的特定版本,它是 3.7 这对我有帮助

我已经安装了这些:

sudo apt-get install python3.7-dev libmysqlclient-dev

然后通过以下方式安装mysqlclient:

pip install mysqlclient

【讨论】:

这再次帮助了我:) 内斯特,很高兴为您提供帮助!它有时对我也有帮助:-) 谢谢,这解决了我的问题。你节省了我很多时间:)【参考方案7】:

gccbuild-essential 软件包的一部分,您应该先安装它:

sudo apt-get install build-essential

更新:按照@bosnjak 的建议,您可能还需要安装openssl 开发者工具:

sudo apt-get install libssl-dev

【讨论】:

即使在安装了以上所有内容后,它在 Ubuntu 18.04 中对我不起作用,直到我安装了 sudo apt install libssl-dev,它解决了这个问题。 @bosnjak 解决方案有效,谢谢!我试图在全新的 ubuntu 18.04 安装上安装 @bosnjak 是的!这正是问题所在。回溯状态为cannot find -lssl,因此您确实需要安装libssl-dev 才能在Ubuntu 上构建mysqlclient。

在 ubuntu 18.04 中更改 python 的默认版本

】在ubuntu18.04中更改python的默认版本【英文标题】:Changedefaultversionofpythoninubuntu18.04【发布时间】:2020-05-2505:32:53【问题描述】:我刚刚安装了ubuntu18.04,我真的不知道一切是如何工作的。我在我的Windows系统(3.8.1)中使用了最新... 查看详情

在 ubuntu 上为 python 3.5 扭曲

】在ubuntu上为python3.5扭曲【英文标题】:twistedforpython3.5onubuntu【发布时间】:2017-12-1408:18:59【问题描述】:我尝试在我的虚拟环境中安装django频道。但它失败了。它给出了以下错误“twisted的构建轮失败”。这是怎么回事。?我... 查看详情

在 Ubuntu 上为 libtorrent 安装 Python3 绑定

】在Ubuntu上为libtorrent安装Python3绑定【英文标题】:InstallingthePython3bindingsforlibtorrentonUbuntu【发布时间】:2017-11-1803:34:17【问题描述】:我正在尝试为Python3安装libtorrent。它是C++库的包装器。但是,我似乎无法让它工作。我试过了... 查看详情

如何在 Ubuntu 18 上为 python 3.7 安装 pip?

】如何在Ubuntu18上为python3.7安装pip?【英文标题】:HowtoInstallpipforpython3.7onUbuntu18?【发布时间】:2019-07-0503:07:39【问题描述】:编辑18/02:由于我仍然没有解决方案,我正在更新我目前所知道的。我已经成功安装了python3.7。我可以... 查看详情

kivy 和 python3 在 ubuntu 18.04 上不起作用

】kivy和python3在ubuntu18.04上不起作用【英文标题】:kivyandpython3doesntworkonubuntu18.04【发布时间】:2018-12-2301:20:24【问题描述】:我有ubuntu18.04的笔记本电脑,用于在python3中编程。我决定学习如何制作GUI,并选择了Kivy,因为它具有多... 查看详情

如何在 Ubuntu 20.04 上为 Python 3.9 安装 pip

】如何在Ubuntu20.04上为Python3.9安装pip【英文标题】:HowtoinstallpipforPython3.9onUbuntu20.04【发布时间】:2021-04-1502:13:16【问题描述】:Ubuntu20.04附带Python3.8。我无法卸载Python3.8,但我需要Python3.9我继续安装Python3.9:sudoadd-apt-repositoryppa:de... 查看详情

如何在 Ubuntu 16.10 上为 Python 3.6 安装 pip?

】如何在Ubuntu16.10上为Python3.6安装pip?【英文标题】:HowtoinstallpipforPython3.6onUbuntu16.10?【发布时间】:2017-07-2811:25:38【问题描述】:我想首先指出这个问题可能看起来像重复,但事实并非如此。我在这里看到的所有问题都是关于Py... 查看详情

在 ubuntu 14.04 上为 python3 安装 graphviz 时遇到问题

】在ubuntu14.04上为python3安装graphviz时遇到问题【英文标题】:Troubleinstallinggraphvizforpython3onubuntu14.04【发布时间】:2016-08-0421:33:09【问题描述】:我想用python3画一个决策树。然而我只能找到python2的模块:graphviz,ete3我错过了什么... 查看详情

jupyter在ubuntu18.04上的安装

试了很多次的总结用pip安装Jupyter作为现有或有经验的Python用户,您可能希望使用Python的包管理器pip而不是Anaconda来安装Jupyter。如果你安装了Python3(推荐):python3-mpipinstall--upgradepippython3-mpipinstalljupyter如果你安装了Python2:python-mp... 查看详情

如何在 wsl2 上为不同的发行版设置不同的 ip?

...:2021-02-1403:57:16【问题描述】:我在wsl2上运行5个不同的Ubuntu发行版,但都具有相同的IP地址。例如,Ubuntu18.04和Ubuntu20.04具有相同的IP。每个Ubuntu版本是否可以有不同的ip?【问题讨论】:这方面有什么 查看详情

ubuntu18.04中使用python

参考技术AUbuntu18.04系统内自带的Python是Python3.6。如果想要安装Python3.7可以直接使用sudoaptinstallpython3.7过程中有问题的话再解决,然后安装对应的pip安装高版本python参考不同的版本对应的pip安装报错但是提示pip安装成功,解决办法使... 查看详情

pip

如何在Ubuntu18.04上安装Pip[日期:2018-05-15] 来源:Linux公社作者:醉落红尘 [字体:大中小]Pip是一个软件包管理系统,它简化了用Python编写的软件包(如Python包索引(PyPI)中的软件包)的安装和管理。在Ubuntu18.04上缺省没有安装Pip... 查看详情

pip

如何在Ubuntu18.04上安装Pip[日期:2018-05-15] 来源:Linux公社作者:醉落红尘 [字体:大中小]Pip是一个软件包管理系统,它简化了用Python编写的软件包(如Python包索引(PyPI)中的软件包)的安装和管理。在Ubuntu18.04上缺省没有安装Pip... 查看详情

在 Ubuntu 上为 Android 编译 dlib

】在Ubuntu上为Android编译dlib【英文标题】:CompiledlibforAndroidonUbuntu【发布时间】:2020-12-1120:40:24【问题描述】:我正在尝试为Android编译dlib。我的SO是Ubuntu20.04。我从https://github.com/tzutalin/dlib-android开始学习本教程我下载了Android-NDK... 查看详情

Ubuntu 18.04 上的“E:无法找到包 python-pip”[重复]

】Ubuntu18.04上的“E:无法找到包python-pip”[重复]【英文标题】:"E:Unabletolocatepackagepython-pip"onUbuntu18.04[duplicate]【发布时间】:2019-08-2017:15:46【问题描述】:我正在尝试在Ubuntu上安装virtualenv。首先是command\'pip\'notfound,所以... 查看详情

当 Jetson Nano(Ubuntu 18.04)上的互联网连接可用时运行 python 脚本

】当JetsonNano(Ubuntu18.04)上的互联网连接可用时运行python脚本【英文标题】:RunpythonscriptwheninternetconnectionbecomesavailableonJetsonNano(Ubuntu18.04)【发布时间】:2022-01-1119:10:13【问题描述】:我需要设置一个JetsonNano设备,以便在每次有In... 查看详情

支持向量回归 (SVR) 在 Ubuntu 18.04 LTS 中不绘制图形

】支持向量回归(SVR)在Ubuntu18.04LTS中不绘制图形【英文标题】:SupportVectorRegression(SVR)plotsnographinUbuntu18.04LTS【发布时间】:2018-11-2522:33:11【问题描述】:我在Ubuntu18.04LTS中使用Python2.7.15rc1。我试图绘制支持向量回归图,但我没有得... 查看详情

为啥 /dev/shm 文件夹可以在 Ubuntu 18.04 中定期清理?

】为啥/dev/shm文件夹可以在Ubuntu18.04中定期清理?【英文标题】:Whymay/dev/shmfolderbeperiodicallycleanedinUbuntu18.04?为什么/dev/shm文件夹可以在Ubuntu18.04中定期清理?【发布时间】:2019-11-1809:30:49【问题描述】:我有一个适用于/dev/shm文件... 查看详情