簡體   English   中英

在Alpine Linux for Python 3.6上編譯Twisted

[英]Compiling Twisted on Alpine Linux for Python 3.6

我有以下Dockerfile,我正在嘗試使用Python 3.6編譯Twisted作為目標。

FROM alpine:3.5

RUN apk --update add \
      build-base libffi-dev openssl-dev python3-dev \
      libffi openssl ca-certificates python3
RUN apk add \
      py-pip \
      py-lxml \
      py-pillow
RUN \
    pip install --upgrade python-dateutil \
                          arrow \
                          pytz \
                          zope.interface \
                          https://files.pythonhosted.org/packages/source/T/Twisted/Twisted-17.1.0.tar.bz2 \
                          jinja2
RUN \
    apk del build-base libffi-dev openssl-dev python3-dev && \
    rm -rf /var/cache/apk/* && \
    rm -rf ~/.cache/ && \
    adduser -D -u 1001 noroot

USER noroot

CMD ["/bin/sh"]

我的問題是,在復制Twisted后,我收到以下錯誤:

gcc -fno-strict-aliasing -Os
  -fomit-frame-pointer -g -DNDEBUG -Os -fomit-frame-pointer
  -g -fPIC -I/usr/include/python2.7 -c src/twisted/test/raiser.c
  -o build/temp.linux-x86_64-2.7/src/twisted/test/raiser.o 
  src/twisted/test/raiser.c:4:20: fatal error: Python.h: No such file or 
  directory

因此,Twisted中的某些內容似乎指的是我沒有安裝的Python 2.7標頭,因為我不打算定位該版本。

我找不到針對Python 3.6的Twisted下載的特殊版本。

我屬於那些堅持2.7的人,主要是因為Twisted,而我只是想用3.6弄濕我的腳,所以在回答時要記住這一點。 我只是想檢查我的代碼是否在3.6上運行,我將要進行哪些修改。 但編譯Twisted是我的第一道屏障。

您正在安裝的py-pip包用於python 2.x. 因此,當你調用pip install ...你正在為python 2.x安裝包。

python3包為python 3提供了一個pip3命令。通常, py-<something>用於Python 2.x, py3-<something>用於Python 3.x. 換一種說法:

FROM alpine:3.5

RUN apk --update add \
      build-base libffi-dev openssl-dev python3-dev \
      libffi openssl ca-certificates python3
RUN apk add \
      py3-lxml \
      py3-pillow
RUN \
    pip3 install --upgrade python-dateutil \
                          arrow \
                          pytz \
                          zope.interface \
                          https://files.pythonhosted.org/packages/source/T/Twisted/Twisted-17.1.0.tar.bz2 \
                          jinja2
RUN \
    apk del build-base libffi-dev openssl-dev python3-dev && \
    rm -rf /var/cache/apk/* && \
    rm -rf ~/.cache/ && \
    adduser -D -u 1001 noroot

USER noroot

CMD ["/bin/sh"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM