web-dev-qa-db-ja.com

コピーされたpipfileから仮想環境内に依存関係をインストールする方法は?

問題は、pipenvを使用するgitプロジェクトのクローンを作成することから始まるため、Pipfile + Pipfile.lockがあります。プロジェクトで仮想環境を使用したいので、pipenv Shellを実行します。これで仮想環境が作成され、仮想環境内にいます。プロジェクトには明らかに多くの依存関係があります(Pipfileにリストされています)。 Pipfileの大きなリストを1つずつ調べて、pipenv install <package_name>を使用してインストールする必要はありません。すでに持っているPipfileからすべてのパッケージをインストールするpipenv/pipコマンドはありますか?または、pipenv Shellを実行するのとは異なる環境をセットアップする必要があるかもしれません。注:pip freezeは何も返しません。

8
Caleb Syring

この質問に対する適切な答えは、pipenv installまたはpipenv install --dev(dev依存関係がある場合)を実行することです。これにより、すべての依存関係がPipefileにインストールされます。依存関係をrequirements.txtに入れてからpipを使用することはできますが、実際には必要ありません。ほとんどの人がpipenvを使用することの全体的な目的は、requirements.txtを管理したり、pipを使用したりする必要を避けることです。

編集:virtualenvがすでに有効化されている場合、pipenv syncまたはpipenv sync --devを使用して同じ効果を得ることができます。

13
Randy Syring

理想的には、requirements.txtファイルには、pipを介したインストールに必要なすべてのパッケージが含まれています。このファイルを作成するには、次を実行します。

pip freeze > requirements.txt

PipfileとPipfile.lockをrequirements.txtに変換できます。 これを見てください

pipenv lock -r

その後、以下を実行することにより、python仮想環境にすべてのモジュールをインストールできます。

pip install -r requirements.txt

うまくいけば、私はあなたの質問に答えました。

同様の問題がありました。私にとっては、virtualenvを終了して実行しました

pipenv --three sync

そしてそれは働いた。

私が理解できるのは、私の場合、python 3を使用して新しい仮想環境を作成することです。python 2を使用すると、上記のコマンドは読むように編集される

pipenv --two

Syncコマンドは、すべての依存関係をPipfile.lockから新しいvirtualenvにコピーします。

1
miriad