web-dev-qa-db-ja.com

condaからpip3のrequirements.txtを作成します

こんにちは、私は通常、環境を管理するためにcondaを使用しますが、現在はラップトップよりも少し馬力が必要なプロジェクトに取り組んでいます。そこで、新しいIntel Xeonを搭載した大学のワークステーションを使用しようとしています。しかし、私には管理者権限がなく、ワークステーションにはcondaがないため、virtualenvとpip3を使用する必要があります。

requirements.txtおよびvenvで動作するpip3をcondaから生成するにはどうすればよいですか?

conda list -e > requirements.txt

互換性のあるファイルを生成しません:

= is not a valid operator. Did you mean == ?

conda出力は次のとおりです。

# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: osx-64
certifi=2016.2.28=py36_0
cycler=0.10.0=py36_0
freetype=2.5.5=2
icu=54.1=0
libpng=1.6.30=1
matplotlib=2.0.2=np113py36_0
mkl=2017.0.3=0
numpy=1.13.1=py36_0
openssl=1.0.2l=0
pip=9.0.1=py36_1
pyparsing=2.2.0=py36_0
pyqt=5.6.0=py36_2
python=3.6.2=0
python-dateutil=2.6.1=py36_0
pytz=2017.2=py36_0
qt=5.6.2=2
readline=6.2=2
scikit-learn=0.19.0=np113py36_0
scipy=0.19.1=np113py36_0
setuptools=36.4.0=py36_1
sip=4.18=py36_0
six=1.10.0=py36_0
sqlite=3.13.0=0
tk=8.5.18=0
wheel=0.29.0=py36_0
xz=5.2.3=0
zlib=1.2.11=0

すべての===に手動で変更するだけだと思ったが、condaの出力には2つの=があります。どちらを変更しますか?簡単な方法はありますか?

編集:pip freeze > requirements.txtは以下を提供します:

certifi==2016.2.28
cycler==0.10.0
matplotlib==2.0.2
matplotlib-venn==0.11.5
numpy==1.13.1
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.2
scikit-learn==0.19.0
scipy==0.19.1
six==1.10.0
15
ITA

議論の後、実際にpipcondaの役割のいくつかの分離を見ることができることに言及したいと思います。

pipは標準のパッケージマネージャーであり、1つのことを行い、うまく機能します。 requirements.txtは1つの環境で生成され、pipによって新しい環境にインストールされます。

これでcondaの出力があります:'condaで動作するライブラリのこのリストを生成しました'というコメントを正しくキャプチャします。 python自体はcondaリストにあり、(適切に)requirements.txtcondaは独自のインストールを複製します。そのため、ライブラリのリストが長くなり、python自体があります。

pipは、作成したパッケージを機能させるために、標準ライブラリの上にインストールされたパッケージのリストを生成します。この2つを区別するのに役立つことを願っています。

また、 pipenv は新しいツールであり、仮想環境とパッケージ管理の両方を実行できます。

6
Evgeny

Condaの既存のプロジェクトからrequirements.txtを生成しようとしている場合に備えて、以下を使用します

  • プロジェクト環境に移動conda activate <env_name>

  • conda list環境に使用されるパッケージのリストを提供します

  • conda list -e > requirements.txtパッケージに関するすべての情報をフォルダに保存

  • conda env export > <env_name>.yml

  • pip freeze

0
Aishwat Singh

上部のコメントが示すように、の出力

conda list -e > requirements.txt

を使用してconda仮想環境を作成できます。

conda create --name <env> --file requirements.txt

ただし、この出力はpipの正しい形式ではありません。

pip仮想環境(つまり、正しい形式のrequirements.txt)の作成に使用できるファイルが必要な場合は、pip環境内にcondaをインストールできます。 pipを使用してrequirements.txtを作成します。

conda activate <env>
conda install pip
pip freeze > requirements.txt

次に、結果のrequirements.txtを使用してpip仮想環境を作成します。

python3 -m venv env
source env/bin/activate
pip install -r requirements.txt

これをテストしたとき、パッケージは出力全体で同一ではありませんでした(pipに含まれるパッケージの数が少ない)が、機能的な環境をセットアップするには十分でした。

0
rmwenzel