Crear un entorno de conda vacío

86

Puedo crear un nuevo entorno de conda, con un programa biopythoncon esto:

conda create --name snowflakes biopython

¿Qué pasa si no quiero instalar ningún programa? Parece que no puedo hacer eso:

» 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
fuente
2
Por lo general, desea al menos instalar Python. Si ni siquiera desea una versión de Python, puede engañar a Conda creando manualmente un entorno vacío usandomkdir -p </path/to/your/anaconda/distribution>/envs/<env-name>/bin
cel
no tiene sentido para mí. ¿Por qué no podemos crear un env sin paquete?
cammil
1
¿Qué se crea exactamente cuando se crea un "entorno vacío"?
user3731622
@cammil No estoy seguro de si esto ha cambiado en las versiones más nuevas de conda porque cuando creo un nuevo entorno sin especificar nada, instala cero paquetes conda create --n my_env ## crea my_env con 0 paquetes instalados Pero, cuando especifico un python versión, por ejemplo, python = 3.7, luego instala las dependencias básicas. conda create --n my_env2 python = 3.7 fuente activa my_env2 conda list ## lista alrededor de 10 paquetes instalados
Light_B

Respuestas:

213

Puede dar un nombre de paquete de solo "python" para obtener una instalación base vacía.

conda create --name myenv python
conda create --name myenv python=3.4
Joelion
fuente
14
Gracias. No estoy seguro de por qué esto no está al frente y al centro en la página de la lista de paquetes de Anaconda
Joelion
esto es increíblemente útil, ¡muchas gracias! También actualicé mi hoja de chetsheet conda para incluir y enfatizar esto (en caso de que sea útil para otros: github.com/NeuronQ/cookbook/wiki/Python-Conda-cheatsheet )
NeuronQ
2
Estoy en la versión 4.3.23 de conda y "conda create --name myenv" crea un nuevo entorno sin paquetes, ni siquiera python. Utiliza python del entorno raíz de conda.
Varun
Cuando hago esto, conda instala libgcc mutex, setuptools, pip y wheel en el nuevo entorno, así que no es exactamente "mínimo", ¿verdad?
Adrian
@Adrian, eso es lo mínimo posible si realmente quieres hacer algo en ese entorno, como instalar otros paquetes ...
Joelion
34

Si ha creado un create_default_packagesbloque en su .condarcarchivo, la respuesta de @ joelion instalará esos paquetes. Si no los quiere, use la --no-default-packagesbandera. Por ejemplo:

conda create --name myenv python --no-default-packages
farenorth
fuente
3
Cuando intento esto, con python = 2.7, está instalando varios pkgs, como libgcc-ng, certifi, libstdcxx-ng, etc. ¿Cómo evitar la instalación de estos?
Ethan
5

Para crear un entorno que esté absolutamente vacío, sin Python y / o cualquier otro paquete predeterminado, simplemente cree una nueva carpeta en el envsdirectorio de su Anacondainstalación (Anaconda3 en este ejemplo) :.

~\Anaconda3\envs>mkdir empy_env

La primera vez que activa este entorno se crea un directorio llamado Scriptsen Windows, binen Linux, con algunos archivos por lotes. En el momento de esta publicación, esto funciona para Anaconda versión 4.3.30 tanto en Windows como en Linux.

He notado que @cel sugirió lo mismo en el primer comentario bajo la pregunta, ¡pero obviamente no recibió la atención que se merece!

Reza Dodge
fuente
3

Así es como crear un conda_env verdaderamente vacío (ligero) con 0 paquetes:

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

tomará unos segundos crear y terminar.

Aymen Alsaadi
fuente
No funciona, ese comando todavía lo precargó con toneladas de paquetes como pylint scipy, etc.
Cardin
@Cardin No, absolutamente no. Este comando no tendrá paquetes instalados. Puedes verificarlo usando conda list verás que no hay paquetes.
Aymen Alsaadi
imgur.com/a/3AiDnyh está bien, creo que técnicamente tienes razón. Pero la intención de OP parece ser sobre paquetes pip, no sobre paquetes conda. Porque al usar la respuesta de joelion (que es la respuesta aceptada), crea un entorno conda con dependencias mínimas de pip.
Cardin
Creo que el contexto de esta pregunta fue sobre cómo crear un env conda vacío. (0 paquetes de conda). ¡Y mi respuesta fue entregar eso!
Aymen Alsaadi
1
Tienes razón, apuntaba a basepython en las variables de entorno PATH, en lugar de a my_envpython, por eso los paquetes pip estaban allí. Supuse erróneamente que hacían clonación de enlaces simbólicos, por lo que no entendí por qué los paquetes de 200 pip eran tan rápidos. ¡Gracias!
Cardin