首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu18.04上为python安装mysqlclient时出错

问在Ubuntu18.04上为python安装mysqlclient时出错
EN

Stack Overflow用户
提问于 2019-01-24 16:09:36
回答 7查看 18.6K关注 0票数 17

我在Ubuntu上安装了Python2.7.15rci和Python3.6.7。当我在virtualenv上执行“pip list”时,它会返回我:

代码语言:javascript
复制
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安装mysqlclient)并返回一个错误。

代码语言:javascript
复制
  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/

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

代码语言:javascript
复制
sudo apt-get install python-dev
sudo apt-get install python3-dev
sudo apt-get install libmysqlclient-dev

再来点..。但他们都不适合我,而且问题依然存在。有什么建议吗?

谢谢!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2019-01-26 20:16:40

gcc是build-essential包的一部分,您应该先安装它:

代码语言:javascript
复制
sudo apt-get install build-essential

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

代码语言:javascript
复制
sudo apt-get install libssl-dev
票数 29
EN

Stack Overflow用户

发布于 2019-11-06 20:34:27

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

我安装了这些:

代码语言:javascript
复制
sudo apt-get install python3.7-dev libmysqlclient-dev

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

代码语言:javascript
复制
pip install mysqlclient
票数 22
EN

Stack Overflow用户

发布于 2020-02-27 14:24:06

我发现,几乎每个Python版本的解决方案都略有不同。对于使用不同版本(如Python2.x、3.5或3.7 )的用户,我发现了this

第一部分

对于Python2.x,请使用:

代码语言:javascript
复制
  $ sudo apt-get install python-dev

对于Python2.7,使用:

代码语言:javascript
复制
  $ sudo apt-get install libffi-dev

对于Python3.x,请使用:

代码语言:javascript
复制
  $ sudo apt-get install python3-dev

对于Python3.4,请使用:

代码语言:javascript
复制
  $ sudo apt-get install python3.4-dev

对于Python3.7,请使用:

代码语言:javascript
复制
  $ sudo apt-get install python3.7-dev

对于Python3.8,请使用:

代码语言:javascript
复制
  $ sudo apt-get install python3.8-dev

对于Python3.9,请使用:

代码语言:javascript
复制
  $ sudo apt-get install python3.9-dev

第二部分

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

代码语言:javascript
复制
  $ sudo apt-get install build-essential

最后

代码语言:javascript
复制
  $ sudo apt-get install libssl-dev

但最后两个人帮不了我自己--但希望这能帮到你!

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54350881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档