ホストマシンのlibsに従って依存関係をインストールする方法はありますか? "問題"はlib e.q:Hadoopの有無にかかわらずマシンで動作するパッケージを持っていることです。pythonの依存関係はマシンホストによってインストールされますか?
しかし、pydoopはホストにインストールされていないときに落ちています。 Hadoopがインストールされていないマシンにpydoopをインストールしないようにインテリジェントにすることは可能ですか?
ホストマシンのlibsに従って依存関係をインストールする方法はありますか? "問題"はlib e.q:Hadoopの有無にかかわらずマシンで動作するパッケージを持っていることです。pythonの依存関係はマシンホストによってインストールされますか?
しかし、pydoopはホストにインストールされていないときに落ちています。 Hadoopがインストールされていないマシンにpydoopをインストールしないようにインテリジェントにすることは可能ですか?
可能ですが、そうすることはお勧めしません。他の何を指定する文字列の文字列やリストに 「エキストラ」(プロジェクトのオプション機能)の辞書マッピング名:
extras_require:代わりに、setuptoolsを使用して配布の「余分な」オプションが作りますこれらの機能をサポートするには、ディストリビューションをインストールする必要があります。この引数の形式の詳細と例については、Declaring Dependenciesの下のセクションを参照してください。
だからあなたsetup.py
はこのようなものがあります:
setup(
name="PyAgus",
...
extras_require={
'hadoop': ["pydoop"],
}
)
をオプションでHadoopのサポートとか、インストールするかどうかを決定するために、ユーザーにそれを任せます。この場合の「ユーザ」は、オーケストレーションレポであってもよいことに留意されたい。塩/不可能/人形。
あなたが本当に動的にソースマシン上で役に立つ、あなたがsetup.py
に直接install_requires
引数を生成するためのロジックを追加post-install scriptまたはちょうどを使用してそれを行うことができますLIBSの検査に基づいて追加のかどうかをインストールするかどうかを決定します。両方の方法はハッキーで、PyPAはそれにつきましてはopen ticketです。