Crie um ambiente de conda vazio

86

Posso criar um novo ambiente conda, com programa biopythoncom este:

conda create --name snowflakes biopython

E se eu não quiser instalar nenhum programa? Parece que não posso fazer isso:

» 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
fonte
2
Normalmente você deseja pelo menos instalar o python. Se você não quer nem mesmo uma versão python, você pode enganar o conda criando manualmente um ambiente vazio usandomkdir -p </path/to/your/anaconda/distribution>/envs/<env-name>/bin
cel
não faz sentido para mim. por que não podemos criar um env sem pacote?
novembro
1
O que exatamente é criado quando um "ambiente vazio" é criado?
user3731622
@cammil Não tenho certeza se isso mudou nas versões mais recentes do conda porque quando eu crio um novo ambiente sem especificar nada, ele instala zero pacotes conda create --n my_env ## cria my_env com 0 pacotes instalados Mas, quando eu especifico um python versão por exemplo python = 3.7 então ele instala as dependências básicas. conda create --n my_env2 python = 3.7 fonte ativar my_env2 conda list ## lista em torno de 10 pacotes instalados
Light_B

Respostas:

213

Você pode dar um nome de pacote apenas "python" para obter uma instalação básica vazia.

conda create --name myenv python
conda create --name myenv python=3.4
joelion
fonte
14
obrigado. Não tenho certeza por que isso não está no centro da página da lista de pacotes do Anaconda
joelion
isso é extremamente útil, muito obrigado! Também atualizei meu chetsheet conda para incluir e enfatizar isso (caso seja útil para outras pessoas: github.com/NeuronQ/cookbook/wiki/Python-Conda-cheatsheet )
NeuronQ
2
Estou no conda versão 4.3.23 e "conda create --name myenv" cria um novo ambiente sem pacotes, nem mesmo python. Ele usa python do ambiente raiz conda.
Varun
Quando eu faço isso, o conda instala o mutex libgcc, setuptools, pip e wheel no novo ambiente, então não é exatamente "mínimo", não é?
Adrian
@Adrian é o mínimo possível se você realmente deseja fazer qualquer coisa naquele ambiente, como instalar outros pacotes ...
joelion
34

Se você criou um create_default_packagesbloco em seu .condarcarquivo, a resposta de @joelion instalará esses pacotes. Se você não quiser, use a --no-default-packagesbandeira. Por exemplo:

conda create --name myenv python --no-default-packages
farenorth
fonte
3
Quando estou tentando fazer isso, com python = 2.7, ele está instalando vários pacotes, como libgcc-ng, certifi, libstdcxx-ng, etc. Como evitar a instalação destes?
Ethan de
5

Para criar um ambiente absolutamente vazio, sem python e / ou qualquer outro pacote padrão, basta criar uma nova pasta no envsdiretório de sua Anacondainstalação (Anaconda3 neste exemplo) :.

~\Anaconda3\envs>mkdir empy_env

Na primeira vez que você ativa este ambiente, é criado um diretório nomeado Scriptsno Windows, binno Linux, com alguns arquivos em lote. No momento desta postagem, isso funciona para o Anaconda versão 4.3.30 tanto no Windows quanto no Linux.

Percebi que @cel sugeriu a mesma coisa no primeiro comentário sob a pergunta, mas obviamente não recebeu a atenção que merece!

Reza Dodge
fonte
3

Veja como criar um conda_env verdadeiramente vazio (leve) com 0 pacotes:

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

levará alguns segundos para criar e terminar.

Aymen Alsaadi
fonte
Não funciona, esse comando ainda o pré-carregou com toneladas de pacotes pylint scipy, etc.
Cardin
@Cardin Não, absolutamente não. Este comando não terá pacotes instalados. Você pode verificar usando conda list e verá que não há pacotes.
Aymen Alsaadi
imgur.com/a/3AiDnyh ok, acho que você está tecnicamente certo. Mas a intenção do OP parece ser sobre pacotes pip, não pacotes conda. Porque usando a resposta de joelion (que é a resposta aceita), ele cria um env conda com dependências mínimas de pip.
Cardin
Acho que o contexto dessa questão era sobre como criar um env conda vazio. (0 pacotes conda). E minha resposta foi entregar isso!
Aymen Alsaadi
1
Você está certo, ele estava apontando para basepython em variáveis ​​PATH env, em vez de my_envpython - é por isso que os pacotes pip estavam lá. Eu assumi erroneamente que eles faziam clonagem de links simbólicos, e foi por isso que não entendi por que 200 pacotes pip eram tão rápidos. Obrigado!
Cardin,