Создайте пустую среду conda

86

Я могу создать новую среду conda с программой biopythonс этим:

conda create --name snowflakes biopython

Что делать, если я не хочу устанавливать какую-либо программу? Кажется, я не могу этого сделать:

» conda create --name tryout
Error: too few arguments, must supply command line package specs or --file

You can specify one or more default packages to install when creating
an environment.  Doing so allows you to call conda create without
explicitly providing any package names.

To set the provided packages, call conda config like this:

    conda config --add create_default_packages PACKAGE_NAME
blueFast
источник
2
Обычно вы хотите установить хотя бы python. Если вам даже не нужна версия на питоне, вы можете обмануть conda, вручную создав пустую среду, используяmkdir -p </path/to/your/anaconda/distribution>/envs/<env-name>/bin
cel
для меня не имеет смысла. почему мы не можем создать среду без пакетов?
cammil
1
Что именно создается, когда создается «пустая среда»?
user3731622
@cammil Не уверен, изменилось ли это в новых версиях conda, потому что, когда я создаю новую среду, ничего не указывая, она устанавливает нулевые пакеты conda create --n my_env ## создает my_env с 0 установленными пакетами Но когда я указываю python версия, например python = 3.7, тогда она устанавливает основные зависимости. conda create --n my_env2 python = 3.7 source activate my_env2 conda list ## список около 10 установленных пакетов
Light_B

Ответы:

213

Вы можете дать пакету имя просто «python», чтобы получить базовую пустую установку.

conda create --name myenv python
conda create --name myenv python=3.4
Joelion
источник
14
Спасибо. Я не уверен, почему это не
главное
это невероятно полезно, большое спасибо! Я также обновил свою таблицу conda, чтобы включить и подчеркнуть это (на случай, если это будет полезно для других: github.com/NeuronQ/cookbook/wiki/Python-Conda-cheatsheet )
NeuronQ
2
Я использую conda версии 4.3.23, и «conda create --name myenv» создает новую среду без пакетов, даже без python. Он использует python из корневой среды conda.
Варун
Когда я это делаю, conda устанавливает libgcc mutex, setuptools, pip и wheel в новую среду, так что это не совсем "минимально", не так ли?
Адриан
@ Адриан, это как можно меньше, если вы действительно хотите что- то делать в этой среде, например, устанавливать другие пакеты ...
Джоэлион
35

Если вы создали create_default_packagesблок в своем .condarcфайле, ответ @joelion установит эти пакеты. Если они вам не нужны, используйте --no-default-packagesфлаг. Например:

conda create --name myenv python --no-default-packages
далеко
источник
3
Когда я пытаюсь это сделать, с python = 2.7 он устанавливает несколько пакетов, таких как libgcc-ng, certifi, libstdcxx-ng и т. Д. Как избежать их установки?
Итан
5

Чтобы создать абсолютно пустую среду без python и / или любого другого пакета по умолчанию, просто создайте новую папку в envsкаталоге вашей Anacondaустановки (Anaconda3 в этом примере) :.

~\Anaconda3\envs>mkdir empy_env

При первой активации этой среды создается каталог с именем Scriptsв Windows, binв Linux, с несколькими пакетными файлами. На момент написания этой статьи это работает для Anaconda версии 4.3.30 как в Windows, так и в Linux.

Я заметил, что @cel предложил то же самое в первом комментарии под вопросом, но, очевидно, он не получил того внимания, которого заслуживает!

Реза Додж
источник
3

Вот как создать действительно пустой (легкий) conda_env с 0 пакетами:

conda create --name myenv --no-default-packages

на создание и завершение потребуется несколько секунд.

Аймен Алсаади
источник
Не работает, эта команда по-прежнему предварительно загрузила кучу пакетов, таких как pylint scipyи т. Д.
Кардин,
@Cardin Нет, абсолютно нет. У этой команды не будет установленных пакетов. Вы можете проверить это с помощью, conda list вы увидите, что пакетов нет.
Аймен Алсаади,
imgur.com/a/3AiDnyh ладно, я думаю, вы технически правы. Но намерение OP, похоже, касается пакетов pip, а не пакетов conda. Поскольку при использовании ответа joelion (который является принятым ответом) он создает conda env с минимальными зависимостями от пипса.
Кардин
Я думаю, что контекст этого вопроса был о том, как создать пустой conda env. (0 пакетов conda). И мой ответ был доставлен!
Аймен Алсаади,
1
Вы правы, он указывал на basepython в переменных окружения PATH, а не на my_envpython - вот почему там были пакеты pip. Я ошибочно предположил, что они сделали клонирование символических ссылок, поэтому я не понял, почему пакеты из 200 пакетов были такими быстрыми. Благодарность!
Кардин