Как указать новое местоположение среды для создания конды

местоположение по умолчанию для пакетов - это папка .conda в моем домашнем каталоге. однако на сервере, который я использую, существует очень строгий предел того, сколько места я могу использовать, что в основном позволяет мне не помещать что-либо в мой домашний каталог. как я могу указать местоположение виртуальной среды, которую я хочу создать? Благодарю! сервер работает под управлением Ubuntu.

Ответ 1

Используйте параметр --prefix или -p, чтобы указать, где писать файлы окружения. Например:

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

Создает среду с именем /tmp/test-env, которая находится в /tmp/ вместо стандартного .conda.

Ответ 2

как сказал Павел, используйте

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

если вы находитесь в папке, в которой вы хотите создать свою виртуальную среду, просто опустите путь и используйте

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

Конда только отслеживает среды, включенные в папку envs внутри папки anaconda. В следующий раз, когда вам нужно будет активировать новый env, перейдите в папку, в которой вы ее создали, и активируйте ее с помощью

source activate yourEnvName

Ответ 3

Пока работает опция --prefix, вы должны явно использовать ее каждый раз, когда создаете среду. Если вы просто хотите, чтобы ваши среды по умолчанию хранились где-то еще, вы можете настроить их в своем файле .condarc.

Пожалуйста, смотрите: https://conda.io/docs/user-guide/configuration/use-condarc.html#specify-environment-directories-envs-dirs

Ответ 4

Вы можете создать это так

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

Ответ 5

Я столкнулся с подобной ситуацией. У меня был доступ к большему диску данных. В зависимости от вашей ситуации и доступа к серверу вы можете рассмотреть

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

Затем последующие команды conda будут помещать данные в каталог с символическими ссылками в datavol

Ответ 6

Если вы хотите использовать --prefix или -p, но хотите избежать использования полного пути среды для его активации, вам необходимо отредактировать .condarc конфигурации .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=xx, то activate myenv (или source activate myenv в Linux) должно работать.

Надеюсь, это поможет!

PS Я наткнулся на это методом проб и ошибок. Я думаю, что происходит, когда вы редактируете ключ envs_dirs, conda обновляет ~\.conda\environments.txt чтобы включить среды, найденные во всех каталогах, указанных в envs_dirs, чтобы к ним можно было обращаться без использования абсолютных путей.