【问题标题】:pip install MySQL-python fails on ubuntu 14.04, error: command 'x86_64-linux-gnu-gcc' failed with exit status 1pip install MySQL-python 在 ubuntu 14.04 上失败,错误:命令“x86_64-linux-gnu-gcc”失败,退出状态为 1
【发布时间】:2015-01-11 10:12:39
【问题描述】:

我已阅读要安装的软件包列表的所有堆栈溢出/谷歌建议,但似乎都没有解决这个问题。

将 ubuntu 14.04 网络服务器从美国托管服务提供商迁移到欧洲的 DigitalOcean,两者都配置了相同的 Ansible 剧本,但必须在美国的实例上预先安装一些东西,因为 MySQL-python==1.2.5 安装那里很好。

apt-get build-essential python-dev python-pip libssl-dev libmariadbclient-dev
pip install MySQL-python

当我第一次迁移到 14.04 时,我在安装 MySQL-python 时遇到了问题,因为需要存在 libssl-dev。这似乎是另一回事。

In file included from _mysql.c:44:0:
    /usr/include/mysql/my_config.h:654:2: error: #error <my_config.h> MUST be included first!
     #error <my_config.h> MUST be included first!
      ^
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/MySQL-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-5u4s0f-record/install-record.txt --single-version-externally-managed --compile:
    running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.7

copying _mysql_exceptions.py -> build/lib.linux-x86_64-2.7

creating build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/converters.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/connections.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/cursors.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/release.py -> build/lib.linux-x86_64-2.7/MySQLdb

copying MySQLdb/times.py -> build/lib.linux-x86_64-2.7/MySQLdb

creating build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants

running build_ext

building '_mysql' extension

creating build/temp.linux-x86_64-2.7

x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing

In file included from _mysql.c:44:0:

/usr/include/mysql/my_config.h:439:0: warning: "HAVE_WCSCOLL" redefined [enabled by default]

 #define HAVE_WCSCOLL

 ^

In file included from /usr/include/python2.7/pyconfig.h:3:0,

                 from /usr/include/python2.7/Python.h:8,

                 from _mysql.c:29:

/usr/include/x86_64-linux-gnu/python2.7/pyconfig.h:911:0: note: this is the location of the previous definition

 #define HAVE_WCSCOLL 1

 ^

In file included from _mysql.c:44:0:

/usr/include/mysql/my_config.h:654:2: error: #error <my_config.h> MUST be included first!

 #error <my_config.h> MUST be included first!

  ^

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

----------------------------------------
Cleaning up...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/MySQL-python/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-5u4s0f-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/MySQL-python
Storing debug log for failure in /root/.pip/pip.log

【问题讨论】:

  • sudo apt-get build-dep python-mysqldb
  • 我已经安装了这两个软件包,但问题仍然存在。我已经安装了大量的 python 开发包列表来尝试让它工作和 nada。
  • 不要尝试安装所有东西,只需运行该命令即可。它会找到丢失的任何内容并为您安装。
  • 我刚刚用 libmysqlclient-dev 试过这个,它安装了。如果与 MariaDB 数据库交谈,我应该使用 libmariadbclient-dev 似乎是一个问题。

标签: python mysql compiler-errors mysql-python ubuntu-14.04


【解决方案1】:

带有最新 python-MySQL (1.2.5) 的 Ubuntu 14.04 libmariadbclient-dev 似乎完全坏了。我连接到 MariaDB 维护的存储库并提取了最新版本以解决此编译错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-14
    • 2016-01-08
    • 2017-05-20
    • 2016-04-18
    • 2021-12-24
    • 1970-01-01
    • 2015-01-23
    • 2022-12-03
    相关资源
    最近更新 更多