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ディストリビューション間の移植性の定義はmanylinux1
glibc / 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