システムパッケージマネージャを使用したインストール

システムパッケージマネージャを使用したインストール

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

おすすめ記事