시스템 패키지 관리자를 사용하여 설치

시스템 패키지 관리자를 사용하여 설치

alpine-linux를 사용하려고 하는데 예상대로 작동하지 않습니다.

사용해 보았지만 pip install cryptography시간이 오래 걸리고 이해할 수 없는 출력이 나오면서 멈춥니다.

Running command /usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-h925mzyj/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__f le__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-gdaazboj --python-tag cp36

어떡해?

답변1

Alpine은 C/C++ 확장(C/C++로 작성된 코드, 공유 객체로 컴파일되고 외부 라이브러리를 통해 Python에 로드됨)이 포함된 대부분의 Python 패키지에 대한 골치 아픈 배포판입니다. 그 이유는공개 계정 513Linux 배포판 간의 이식성 정의는 manylinux1glibc/glibcxx를 기반으로 합니다. Alpine은 musl libc를 사용하므로 manylinux1호환 휠을 Alpine에 설치할 수 없습니다. 따라서 를 내보내면 pip install cryptography컴파일된 확장이 포함된 휠이 필터링되고 pip소스의 모든 C 확장이 포함된 패키지를 빌드하려는 시도가 이루어집니다.

시스템 패키지 관리자를 사용하여 설치

@GracefulRestart가 주석에서 언급했듯이 이는 최신 버전의 패키지가 필요하지 않은 경우 사용하는 것이 선호되는 방법입니다.Alpine은 사전 구축된 cryptography패키지를 제공합니다., 현재 cryptography<=2.1.4설치하려면 apk:

$ apk add py-cryptography

pip를 사용하여 설치

최첨단 버전이 필요한 경우 install 을 통해 소스에서 빌드해 볼 수 있습니다 pip.

빌드 환경 준비

musl, OpenSSL, libffi 및 Python 자체와 같은 헤더 파일이 있는 컴파일러와 라이브러리가 필요합니다.

$ apk add gcc musl-dev libffi-dev openssl-dev python3-dev

건축학

pip install pkgname빌드 로그는 기본적으로 숨겨져 있습니다. 전체 빌드 로그를 보려면 추가 -vvv하여 자세한 정보를 늘리세요. (선택 사항) 또한 소스에서 강제 빌드를 manylinux1추가하여 휠 설치를 명시적으로 비활성화 할 수 있습니다.--no-binary=pkgname

$ pip install cryptography -vvv --no-binary=cryptography

관련 정보