condacreateの新しい環境の場所を指定する方法


108

パッケージのデフォルトの場所は、ホームディレクトリの.condaフォルダです。ただし、使用しているサーバーでは、使用できるスペースの量に非常に厳しい制限があり、基本的にホームディレクトリの下に何かを置くことができません。作成する仮想環境の場所を指定するにはどうすればよいですか?ありがとう!サーバーはUbuntuを実行しています。


9
答えに何か問題がありますか、それともなぜあなたはそれを受け入れなかったのですか?気に入らないことがあればいつでもコメントを残すことができます。
ピノキオ

3
@linX常にあなたが好きな答えに賛成し、あなたの問題を最もよく解決する答えを受け入れるようにしてください。これは、著者にマイナーな賞を与え、よく考えられた有益な答えを与え続けるように彼らを動機づけます。
マイクウィリアムソン

回答:


121

--prefixまたは-pオプションを使用して、環境ファイルを書き込む場所を指定します。例えば:

conda create --prefix /tmp/test-env python=2.7

デフォルトの代わりに/tmp/test-env存在するという名前の環境を作成し/tmp/ます.conda


6
しかし、envの場所を移動したら、condaはその新しいenvがどこにあるかを見つける方法をどのように知るのでしょうか。
ピノキオ

4
〜/ .conda / envs内に各環境のディレクトリがあります。他の人のガイダンスに従い、-prefixを使用して必要な場所にインストールします。次に、相互にシンボリックリンクを作成します。ln-s / shared / eng / conds / envs / test-env〜 / .conda / envs / test-env
Robert Lugg

1
なぜ機能しないのconda create --name hbf_env --prefix /om2/user/username python=3.6 ですか?言う-bash: /home/username/.conda/envs/hbf_env/bin/conda: No such file or directory
チャーリーパーカー

7
チャーリー、ファイル/ディレクトリが見つからないというエラーメッセージが表示された理由はわかりませんが、それにもかかわらず、と--name一緒に使用することはできません--prefix。condaが正しくインストールされているとすると、対応するコマンドはになりますconda create --prefix /om2/user/username/hbf_env python=3.6。これによりhbf_env、場所に名前が付けられたenvが作成されます/om2/user/username/
Thomas Fauskanger 2017年

9
@ThomasFauskanger少なくとも私にとっては、prefixコマンドは環境の名前を作成しないようです。conda create --prefix hbf_envローカルディレクトリの後、conda info --envs名前は空白で表示されますが、フルパスは表示されます...環境をアクティブ化するには、入力する必要がありますフルパス(名前を入力しただけでは、condaは環境を見つけることができません)
Joshua

53

パウロが言ったように、

conda create --prefix=/users/.../yourEnvName python=x.x

仮想環境を作成するフォルダーにいる場合は、パスを省略して使用します。

conda create --prefix=yourEnvName python=x.x

condaは、anacondaフォルダー内のenvsフォルダーに含まれる環境のみを追跡します。次回、新しいenvをアクティブ化する必要がある場合は、作成したフォルダーに移動して、次のコマンドでアクティブ化します。

source activate yourEnvName

2
環境名を忘れた場合は、環境を含むディレクトリのフルパスを使用できることに注意してください
tjb 2017

2
.condarc構成ファイルを使用して、他の場所で環境を探すようにcondaに指示できます。 conda.io/docs/user-guide/configuration/…–
厳しい

これにより、名前がなく、ディレクトリのみの環境が作成されます。ステートメント内に名前を作成する方法はありますか?コンダは私に両方を指定させません。
京馬

15

使用中 --prefixオプションの機能しますが、環境を作成するたびに明示的に使用する必要があります。環境をデフォルトで別の場所に保存したいだけの場合は、.condarcファイルで構成できます。

https://conda.io/docs/user-guide/configuration/use-condarc.html#specify-environment-directories-envs-dirsを参照してください。


5
すでにこの変数を変更していない場合は、この一つのコマンドを実行して、それを設定することができます:conda config --append envs_dirs /path/to/envs
アーサーTacca

5
env_prompt: ({name})プロンプトにフルパスが表示された場合は、〜/ .condarcにも追加してください。
plonker 1319

12

--prefixまたは-p引数を使用したいが、環境のフルパスを使用してアクティブ化する必要がないようにしたい場合は、環境を作成する前に構成.condarcファイルを編集する必要があります。

.condarcファイルがホームディレクトリにあります。C:\Users\<user>Windowsの場合。envs_dirsキーの下の値を編集して、環境のカスタムパスを含めます。カスタムパスがD:\envsであるとすると、ファイルは次のようになります。

ssl_verify: true
channels:
  - defaults
envs_dirs:
  - C:\Users\<user>\Anaconda3\envs
  - D:\envs

次に、そのパスに新しい環境を作成すると、実行時にその名前がパスと一緒に表示され、フルパスconda env listではなく名前のみを使用してアクティブ化できるはずです。

コマンドラインのスクリーンショット

要約すると、.condarcを含めるように編集してからD:\envs実行するconda env create -p D:\envs\myenv python=x.xと、activate myenv(またはsource activate myenvLinuxでは)機能するはずです。

お役に立てば幸いです。

PS私は試行錯誤の末にこれに出くわしました。envs_dirsキーを編集すると、condaが更新~\.conda\environments.txtされ、envs_dirsで指定されたすべてのディレクトリにある環境が含まれるようになり、絶対パスを使用せずにアクセスできるようになると思います。


8

このように作成できます

conda create --prefix C:/tensorflow2 python=3.7

アクティベートするためにそのフォルダに移動する必要はありません。

# To activate this environment, use:
# > activate C:\tensorflow2

ご覧のとおり、私はこのようにしています。

D:\Development_Avector\PycharmProjects\TensorFlow>activate C:\tensorflow2

(C:\tensorflow2) D:\Development_Avector\PycharmProjects\TensorFlow>

(C:\tensorflow2) D:\Development_Avector\PycharmProjects\TensorFlow>conda --version
conda 4.5.13

1
OPはUbuntuを使用していると述べましたが、Windowsマシンでもソリューションを提供するために+1しました。:)
マイクウィリアムソン

3

私も同じような状況に遭遇しました。私はより大きなデータドライブにアクセスできました。あなたの状況、そしてあなたが考慮することができるサーバーへのあなたが持っているアクセスに応じて

ln -s /datavol/path/to/your/.conda /home/user/.conda

その後、後続のcondaコマンドは、datavolのシンボリックリンクされたディレクトリにデータを配置します。


1
私の意見では、これは本当に正しい答えです。元の質問はパッケージの場所に関するものであり、あいまいさがありますが、最近この問題に遭遇し、少し調査しました。$HOME/.condaenvsおよびの下に2つの重要なディレクトリがありますpkgs--prefix上記のスキームを使用すると、別の場所に環境が構築されますが、パッケージファイルのダウンロードはすべて$HOME/.conda/pkgs。に移動します。ここで提供されるシンボリックリンクソリューションは、環境ダウンロード場所の両方を修正します。
アンドリューリード

これは完璧な解決策です!
Jingnan Jia6
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.