私の知る限り、パッケージに依存関係を移植可能にインストールする標準的な方法はありません。Continuum には、解決策として conda を支持する人が少なくともいます。残念ながら、これらの依存関係の一部については、自分で conda パッケージを作成する必要がある場合があります。
移植性がなくても問題ない場合は、ターゲット マシンのパッケージ マネージャーをターゲットにすることで明らかに機能します。それ以外の場合、ポータブル パッケージ マネージャーの場合、私が知っている唯一のオプションは conda です。
あるいは、あなたの投稿 (「オンザフライでのコンパイルはオプションではありません」) から、移植性は問題にならないように思えます。その場合、すべての要件をプレフィックス ディレクトリにインストールすることもできます (ほとんどのインストーラーはオプションをサポートしconfigure --prefix=/some/dir/
ます)。単一のアーキテクチャが保証されている場合は、おそらく、すべての依存関係を単一のディレクトリにプレフィックスインストールし、それをファイルのように渡すことができます。conda のアプローチはおそらくよりクリーンですが、私はプレフィックスのインストールをかなり使用しており、それらは最も簡単な解決策の 1 つになる傾向があります。
編集:
condaに関しては、それは同時にパッケージマネージャーであり、「virtualenv」のような環境/ pythonインストールです。virtualenv は既存の python インストールの上に追加されますが、conda はインストール全体を引き継ぐため、すべての依存関係が確実に考慮されます。pip と比較すると、C/Cpp 拡張機能をコンパイルするだけでなく、一般化された非 Python 依存関係を追加するように設計されています。詳細については、次のように表示されます。
conda を目的に使用する方法については、ドキュメントでレシピの作成方法が説明されています。
Conda ビルド フレームワーク
パッケージのビルドにはレシピが必要です。レシピは、次のファイルを含むフラット ディレクトリです。
meta.yaml
(メタデータファイル)
build.sh
(bash を使用して実行される Unix ビルド スクリプト)
bld.bat
(cmd を使用して実行される Windows ビルド スクリプト)
run_test.py
(オプションの Python テスト ファイル)
- ソースへのパッチ (オプション、以下を参照)
- ソースに含まれておらず、ビルド スクリプトで生成できないその他のリソース。
すべてのプラットフォームでパッケージをビルドするには、同じレシピを使用する必要があります。
パッケージをビルドすると、次の手順が呼び出されます。
- メタデータを読む
- ソースを(キャッシュに)ダウンロードする
- ソースディレクトリにソースを抽出します
- パッチを適用する
- ビルド環境を作成します(ビルドの依存関係はここにインストールされます)
- 実際のビルド スクリプトを実行します。現在の作業ディレクトリは、環境変数が設定されたソース ディレクトリです。ビルド スクリプトがビルド環境にインストールされます
- 必要な後処理手順を実行します: シバン、rpath など。
- ビルド環境に conda メタデータを追加する
- ビルド環境の新しいファイルを conda パッケージにパッケージ化する
- 新しい conda パッケージをテストします。
- パッケージ (およびその依存関係) を使用してテスト環境を作成する
- テスト スクリプトを実行する
_ リポジトリには、多くの conda パッケージのサンプル レシピがありますconda-recipes
<https://github.com/continuumio/conda-recipes>
。
:ref:conda skeleton <skeleton_ref>
コマンドは、PyPI <https://pypi.python.org/pypi>
_.
次に、クライアントとして、pip からインストールする場合と同様にパッケージをインストールします。
最後に、dockerも興味深いかもしれませんが、Python であまり使用されていません。