2017-04-01 9 views
1

다음 Dockerfile이 있습니다. 여기에서 Python 3.6을 대상으로 Twisted를 컴파일하려고합니다.Python 3.6 용 Alpine Linux에서 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"] 

내 문제는 트위스트 복사 한 후 나는 다음과 같은 오류를 얻고 있다는 것입니다 :

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 

을 그래서 트위스트 뭔가 내가 가진 파이썬 2.7 헤더를 참조 것 같습니다 설치하지 않았습니다. 해당 버전을 타겟팅 할 계획이 아닙니다.

특수 버전의 Twisted 다운로드 대상 Python 3.6을 찾을 수 없습니다.

저는 주로 트위스티드 때문에 2.7에 충실한 사람들에게 속해 있으며, 저는 3.6으로 젖은 채 젖혀 지려고했습니다. 응답 할 때 이것을 명심하십시오. 3.6에서 코드가 실행되는지 확인하고 싶습니다. 어떤 수정을해야할까요? 그러나 Twisted를 컴파일하는 것이 첫 번째 장벽입니다.

답변

2

설치하려는 py-pip 패키지는 python 2.x 용입니다. 이 때문에, pip install ...을 호출하면 파이썬 2.x 용 패키지를 설치하게된다.

python3 패키지는 py-<something> 파이썬 2.x를위한, 일반적으로 파이썬 3의 pip3 명령을 제공하고, py3-<something> 파이썬 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"]