首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:在高寒码头映像上安装pip软件包时,命令'gcc‘失败,退出状态1

错误:在高寒码头映像上安装pip软件包时,命令'gcc‘失败,退出状态1
EN

Stack Overflow用户
提问于 2019-10-30 15:43:33
回答 1查看 24.2K关注 0票数 13

我试图把我的基地码头形象从centos 7到高山,但我收到gcc错误时,试图安装pip软件包。

这是接收到的错误的片段:

代码语言:javascript
复制
Successfully built backports.ssl-match-hostname configobj dpkt iniparse IPy kitchen logmatic-python maxminddb NeuroTools procfs pycparser python-json-logger pyudev repoze.lru scandir scapy
Failed to build guppy kiwisolver numpy psutil pygpgme pyliblzma python-ldap pyxattr subprocess32
Installing collected packages: atomicwrites, attrs, backports.functools-lru-cache, backports.ssl-match-hostname, certifi, chardet, six, configobj, configparser, contextlib2, cycler, decorator, dnspython, dpkt, urllib3, elasticsearch, elasticsearch5, elasticsearch6, funcsigs, ipaddress, maxminddb, idna, requests, geoip2, guppy, scandir, pathlib2, more-itertools, zipp, importlib-metadata, iniparse, IPy, kafka, kafka-python, kitchen, kiwisolver, python-json-logger, logmatic-python, mock, NeuroTools, numpy, pyparsing, packaging, pbr, ptyprocess, pexpect, pluggy, ply, procfs, psutil, py, pyasn1, pyasn1-modules, pycparser, pygpgme, pyliblzma, wcwidth, pytest, python-dateutil, python-ldap, pytz, pyudev, pyxattr, redis, repoze.lru, scapy, subprocess32, xmltodict
    Running setup.py install for guppy: started
    Running setup.py install for guppy: finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-PWr6Cn/guppy/setup.py'"'"'; __file__='"'"'/tmp/pip-install-PWr6Cn/guppy/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-record-ogmKgm/install-record.txt --single-version-externally-managed --compile
         cwd: /tmp/pip-install-PWr6Cn/guppy/
    Complete output (117 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/guppy
    copying guppy/__init__.py -> build/lib.linux-x86_64-2.7/guppy
    creating build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/docexample.py -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/test_heapyc.py -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/__init__.py -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/test_guppy.py -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/test_heapy.py -> build/lib.linux-x86_64-2.7/guppy/doc
    creating build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/Code.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/Cat.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/IterPermute.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/OutputHandling.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/KnuthBendix.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/KanExtension.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/Unpack.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/__init__.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/FSA.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/tkcursors.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/cmd.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/xterm.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/etc.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/ExecfileWithModuleInfo.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/Help.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/RE.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/RE_Rect.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/Glue.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/textView.py -> build/lib.linux-x86_64-2.7/guppy/etc
    copying guppy/etc/Compat.py -> build/lib.linux-x86_64-2.7/guppy/etc
    creating build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Html.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Latex.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/DottedTree.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Main.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/FileIO.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Filer.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/__init__.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/XHTML.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Text.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Document.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Gsml.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Help.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Exceptions.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/Tester.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    copying guppy/gsl/SpecNodes.py -> build/lib.linux-x86_64-2.7/guppy/gsl
    creating build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Spec.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/OutputHandling.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Remote.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/RefPat.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/ImpSet.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Monitor.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Classifiers.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/__init__.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/RM.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/UniSet.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/View.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Target.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Doc.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Prof.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Part.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Console.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Use.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/Path.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/AbstractAlgebra.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/RemoteConstants.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    copying guppy/heapy/pbhelp.py -> build/lib.linux-x86_64-2.7/guppy/heapy
    creating build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_Classifiers.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_sf.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_heapyc.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_OutputHandling.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_Spec.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/__init__.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_View.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_Path.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_UniSet.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_menuleak.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_dependencies.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_RetaGraph.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_Part.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_all.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_RefPat.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/test_ER.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    copying guppy/heapy/test/support.py -> build/lib.linux-x86_64-2.7/guppy/heapy/test
    creating build/lib.linux-x86_64-2.7/guppy/sets
    copying guppy/sets/test.py -> build/lib.linux-x86_64-2.7/guppy/sets
    copying guppy/sets/__init__.py -> build/lib.linux-x86_64-2.7/guppy/sets
    copying guppy/doc/gsl.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/heapy_UniSet.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/sets.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/heapyc.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/guppy.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/ProfileBrowser.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/heapy_tutorial.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/index.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/docexample.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/heapy_Use.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/gslexample.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/heapy_RootState.html -> build/lib.linux-x86_64-2.7/guppy/doc
    copying guppy/doc/pbscreen.jpg -> build/lib.linux-x86_64-2.7/guppy/doc
    running build_ext
    building 'guppy.sets.setsc' extension
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/src
    creating build/temp.linux-x86_64-2.7/src/sets
    gcc -fno-strict-aliasing -Os -fomit-frame-pointer -g -DNDEBUG -Os -fomit-frame-pointer -g -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/include/python2.7 -c src/sets/sets.c -o build/temp.linux-x86_64-2.7/src/sets/sets.o
    src/sets/sets.c:33:10: fatal error: Python.h: No such file or directory
     #include "Python.h"
              ^~~~~~~~~~
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-PWr6Cn/guppy/setup.py'"'"'; __file__='"'"'/tmp/pip-install-PWr6Cn/guppy/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-record-ogmKgm/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.
The command '/bin/sh -c pip install -r /home/admin/container_files/requirements.txt' returned a non-zero code: 1

我只能推断gcc没有被安装(正确吗?)尽管我在下面的Dockerfile中列出了。我还尝试在自己的级别上运行它,以防安装正确:

代码语言:javascript
复制
FROM alpine:latest

RUN apk update && apk upgrade
RUN apk add --no-cache bash\
                       python \
                       pkgconfig \
                       git \
                       gcc \
                       openldap \
                       libcurl \
    && rm -rf /var/cache/apk/*
RUN wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py

ADD requirements.txt /home/admin/container_files/
RUN pip install setuptools==30.1.0
RUN pip install -r /home/admin/container_files/requirements.txt

取消对pip install -r requirements.txt行的注释将导致正在生成的图像。在ssh‘’ing到映像的一个实例之后,gcc看起来确实被安装了,但是我不知道为什么它会在上面出错:

代码语言:javascript
复制
$ docker run -it alpine-image bash
bash-5.0# gcc --version
gcc (Alpine 8.3.0) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

在docker容器中,我可以尝试使用pip自行安装依赖项,但是这会产生类似的错误,如下所示:

代码语言:javascript
复制
bash-5.0# pip install pygpgme
Collecting pygpgme
  Using cached https://files.pythonhosted.org/packages/dc/96/b2bcbd3a216af313bb9045c2e573aa18653876a65db471b86be7598234dd/pygpgme-0.3.tar.gz
Building wheels for collected packages: pygpgme
  Building wheel for pygpgme (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ih85iq/pygpgme/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ih85iq/pygpgme/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-1HBTfc --python-tag cp27
       cwd: /tmp/pip-install-ih85iq/pygpgme/
  Complete output (18 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-2.7
  creating build/lib.linux-x86_64-2.7/gpgme
  copying gpgme/__init__.py -> build/lib.linux-x86_64-2.7/gpgme
  copying gpgme/editutil.py -> build/lib.linux-x86_64-2.7/gpgme
  running build_ext
  building 'gpgme._gpgme' extension
  creating build/temp.linux-x86_64-2.7
  creating build/temp.linux-x86_64-2.7/src
  gcc -fno-strict-aliasing -Os -fomit-frame-pointer -g -DNDEBUG -Os -fomit-frame-pointer -g -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/include/python2.7 -c src/gpgme.c -o build/temp.linux-x86_64-2.7/src/gpgme.o
  src/gpgme.c:21:10: fatal error: Python.h: No such file or directory
   #include <Python.h>
            ^~~~~~~~~~
  compilation terminated.
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pygpgme
  Running setup.py clean for pygpgme
Failed to build pygpgme
Installing collected packages: pygpgme
    Running setup.py install for pygpgme ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ih85iq/pygpgme/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ih85iq/pygpgme/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-record-1HWn3q/install-record.txt --single-version-externally-managed --compile
         cwd: /tmp/pip-install-ih85iq/pygpgme/
    Complete output (18 lines):
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/gpgme
    copying gpgme/__init__.py -> build/lib.linux-x86_64-2.7/gpgme
    copying gpgme/editutil.py -> build/lib.linux-x86_64-2.7/gpgme
    running build_ext
    building 'gpgme._gpgme' extension
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/src
    gcc -fno-strict-aliasing -Os -fomit-frame-pointer -g -DNDEBUG -Os -fomit-frame-pointer -g -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/include/python2.7 -c src/gpgme.c -o build/temp.linux-x86_64-2.7/src/gpgme.o
    src/gpgme.c:21:10: fatal error: Python.h: No such file or directory
     #include <Python.h>
              ^~~~~~~~~~
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ih85iq/pygpgme/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ih85iq/pygpgme/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-record-1HWn3q/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.

我想知道为什么gcc的行为是这样的,如果有更好的方法来过渡到阿尔卑斯山的形象呢?

附加信息:

阿尔卑斯版本: 3.10.3

python版本: 2.7.16

和平执行方案版本: 19.3.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 04:59:15

缺少头文件Python.h,该文件由python2-dev (用于进行开发的-dev平均包)提供。

使用此https://pkgs.alpinelinux.org/contents,您可以搜索所有具有Python.h的包

通过添加以下3个包,我能够运行pip install pygpgme

  • python2-dev
  • gpgme-dev
  • libc-dev

Dockerfile将是:

代码语言:javascript
复制
FROM alpine:latest

RUN apk update && apk upgrade
RUN apk add --no-cache bash\
                       python \
                       pkgconfig \
                       git \
                       gcc \
                       openldap \
                       libcurl \
                       python2-dev \
                       gpgme-dev \
                       libc-dev \
    && rm -rf /var/cache/apk/*
RUN wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py
RUN pip install setuptools==30.1.0
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58629049

复制
相关文章

相似问题

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