1. ホーム
  2. パイソン

[解決済み】要件<パッケージ>を満たすバージョンが見つかりません。

2022-04-01 17:43:09

質問

Ubuntu 12.04で、いくつかのPythonパッケージを以下の方法でインストールしています。 requirements.txt ファイルを作成します。

numpy>=1.8.2,<2.0.0
matplotlib>=1.3.1,<2.0.0
scipy>=0.14.0,<1.0.0
astroML>=0.2,<1.0
scikit-learn>=0.14.1,<1.0.0
rpy2>=2.4.3,<3.0.0

と、この2つのコマンドです。

$ pip install --download=/tmp -r requirements.txt
$ pip install --user --no-index --find-links=/tmp -r requirements.txt

(最初のものはパッケージをダウンロードし、2番目のものはそれをインストールします)。

というエラーが出て、たびたび処理が止まってしまいます。

  Could not find a version that satisfies the requirement <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2)) (from versions: )
No matching distribution found for <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2))

で手動で修正しています。

pip install --user <package>

を実行し、2番目の pip install コマンドを再度実行します。

しかし、それは その 特定のパッケージ 2番目の pip install コマンドを再度実行すると、今度はプロセスが停止して 別の 新しい必須パッケージを手動で (上のコマンドで) インストールしてから、2 番目の pip install コマンドを実行します。

これまでは、手動で six , pytz , nose が必要だと訴えています。 mock .

と伝える方法はありますか? pip を自動的にインストールするように すべて 必要な依存関係をひとつひとつ手動で行う必要はないのでしょうか?

追加 : ちなみにこれはUbuntu 12.04でのみ発生します。Ubuntu 14.04では pip install コマンドは requirements.txt ファイルは問題なく動作します。

解決方法は?

この方法 (すべての依存関係をディレクトリに持ち、インデックスからダウンロードしない) は、ディレクトリにすべてのパッケージが含まれている場合にのみ機能します。したがって、ディレクトリはすべての依存関係を含むだけでなく、それらの依存関係が依存しているすべてのパッケージも含む必要があります (例, six , pytz など)。

したがって、これらを手動で requirements.txt (最初のステップで明示的にダウンロードするように) または、PyPI を使用してすべてのパッケージをインストールし、次に pip freeze > requirements.txt を使用して、必要なすべてのパッケージのリストを保存します。