は、唯一の方法は、あなたの基準に従ってrequirements.txt
ファイルを/ grepをフィルタするために実際にあります。しかし、使用であるかもしれないいくつかの準備ができて解決策があります
あなたはvirtualenvのを持っているだけですぐに新しい要件またはバージョンの制限にアップグレードする必要がありますが、既存のパッケージを満たしていれば、アップグレードしない場合マニュアルが言うような基準、あなたは
pip install -U --upgrade-strategy=only-if-needed ...
を使用することができます。
--upgrade-strategy <upgrade_strategy>
依存関係のアップグレードはどのように処理すべきかを決定します。 "熱心な" - 現在インストールされているバージョンがアップグレードされたパッケージの 要件を満たすかどうかにかかわらず、依存関係は にアップグレードされます。 「必要な場合のみ」 - は、アップグレードされたパッケージの要件を満たしていない場合にのみアップグレードされます。任意の依存性について
、典型的な溶液はsetuptoolsのextra requirementsあります。例えば、私は開発のための& DOC-建物の要件にそれを使用します。
次のように
# setup.py
setup(
...,
extras_require={
'dev': ["pdbpp", "ipython"],
'doc': ["sphinx"],
},
)
を次に、(編集可能なライブラリとして)ローカルでは、PyPI/DevPIレポ、との両方から、それをインストールすることができます
pip install mylib[dev]
pip install mylib[doc]
pip install -e .[doc,dev]
任意の依存関係を持つ「追加モード」の任意の名前を定義できます。
'pip install'は既にインストールされているものはすべて無視します。 * "いくつかの要件を無視する" *ということは、コードはどのように機能するのですか? – jonrsharpe
@jonrsharpeこのタスクでは必ずしも真ではありません。多くの場合、要件の一部はオプションであり、インストールを面倒にしてしまいます。私はしばしば、私がこの1つを必要としないことを知っているときに、窓のcvxpyからいくつかのソルバ(エコ)を削除します。しかし、それはlibの理解を必要とします。 – sascha
あなたは 'setup.py'を提供していますので、どちらが必要なのか、どれがエキストラなのかを明確にすることができますか? – jonrsharpe