Managing environments — conda 4.6.0 documentation (2024)

  • Creating an environment with commands
  • Creating an environment from an environment.yml file
  • Cloning an environment
  • Building identical conda environments
  • Activating an environment
  • Deactivating an environment
  • Determining your current environment
  • Viewing a list of your environments
  • Viewing a list of the packages in an environment
  • Using pip in an environment
  • Saving environment variables
  • Sharing an environment
  • Removing an environment

With conda, you can create, export, list, remove and updateenvironments that have different versions of Python and/orpackages installed in them. Switching or moving betweenenvironments is called activating the environment. You can alsoshare an environment file.

NOTE: There are many options available for the commands describedon this page. For details, see Command reference.

Creating an environment with commands

TIP: By default, environments are installed into the envsdirectory in your conda directory. Run conda create --helpfor information on specifying a different path.

Use the Terminal or an Anaconda Prompt for the following steps.

  1. To create an environment:

    conda create --name myenv

    NOTE: Replace myenv with the environment name.

  2. When conda asks you to proceed, type y:

    proceed ([y]/n)?

This creates the myenv environment in /envs/. Thisenvironment uses the same version of Python that you arecurrently using, because you did not specify a version.

To create an environment with a specific version of Python:

conda create -n myenv python=3.4

To create an environment with a specific package:

conda create -n myenv scipy

OR:

conda create -n myenv pythonconda install -n myenv scipy

To create an environment with a specific version of a package:

conda create -n myenv scipy=0.15.0

OR:

conda create -n myenv pythonconda install -n myenv scipy=0.15.0

To create an environment with a specific version of Python andmultiple packages:

conda create -n myenv python=3.4 scipy=0.15.0 astroid babel

TIP: Install all the programs that you want in this environmentat the same time. Installing 1 program at a time can lead todependency conflicts.

To automatically install pip or another program every time a newenvironment is created, add the default programs to thecreate_default_packages sectionof your .condarc configuration file. The default packages areinstalled every time you create a new environment. If you do notwant the default packages installed in a particular environment,use the --no-default-packages flag:

conda create --no-default-packages -n myenv python

TIP: You can add much more to the conda create command.For details, run conda create --help.

Creating an environment from an environment.yml file

Use the Terminal or an Anaconda Prompt for the following steps.

  1. Create the environment from the environment.yml file:

    conda env create -f environment.yml

The first line of the yml file sets the new environment’sname. For details see Creating an environment file manually.

  1. Activate the new environment:

    • Windows: activate myenv
    • macOS and Linux: source activate myenv

    NOTE: Replace myenv with the name of the environment.

  2. Verify that the new environment was installed correctly:

    conda list

Cloning an environment

Use the Terminal or an Anaconda Prompt for the following steps.

You can make an exact copy of an environment by creating a cloneof it:

conda create --name myclone --clone myenv

NOTE: Replace myclone with the name of the new environment.Replace myenv with the name of the existing environment thatyou want to copy.

To verify that the copy was made:

conda info --envs

In the environments list that displays, you should see both thesource environment and the new copy.

Building identical conda environments

You can use explicit specification files to build an identicalconda environment on the same operating system platform, eitheron the same machine or on a different machine.

Use the Terminal or an Anaconda Prompt for the following steps.

  1. Run conda list --explicit to produce a spec list such as:

    # This file may be used to create an environment using:# $ conda create --name <env> --file <this file># platform: osx-64@EXPLICIThttps://repo.continuum.io/pkgs/free/osx-64/mkl-11.3.3-0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/numpy-1.11.1-py35_0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/openssl-1.0.2h-1.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/pip-8.1.2-py35_0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/python-3.5.2-0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/readline-6.2-2.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/setuptools-25.1.6-py35_0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/sqlite-3.13.0-0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/tk-8.5.18-0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/wheel-0.29.0-py35_0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/xz-5.2.2-0.tar.bz2https://repo.continuum.io/pkgs/free/osx-64/zlib-1.2.8-3.tar.bz2
  2. To create this spec list as a file in the current workingdirectory, run:

    conda list --explicit > spec-file.txt

    NOTE: You can use spec-file.txt as the filename or replaceit with a filename of your choice.

An explicit spec file is not usually cross platform, andtherefore has a comment at the top such as # platform: osx-64showing the platform where it was created. This platform is theone where this spec file is known to work. On other platforms,the packages specified might not be available or dependenciesmight be missing for some of the key packages already in thespec.

To use the spec file to create an identical environment on thesame machine or another machine:

conda create --name myenv --file spec-file.txt

To use the spec file to install its listed packages into anexisting environment:

conda install --name myenv --file spec-file.txt

Conda does not check architecture or dependencies when installingfrom a spec file. To ensure that the packages work correctly,make sure that the file was created from a working environment,and use it on the same architecture, operating system andplatform, such as linux-64 or osx-64.

Activating an environment

To activate an environment:

  • On Windows, in your Anaconda Prompt, run activate myenv
  • On macOS and Linux, in your Terminal Window, run source activate myenv

Conda prepends the path name myenv onto your system command.

Deactivating an environment

To deactivate an environment:

  • On Windows, in your Anaconda Prompt, run deactivate
  • On macOS and Linux, in your Terminal Window, run source deactivate

Conda removes the path name myenv from your system command.

TIP: In Windows, it is good practice to deactivate oneenvironment before activating another.

Determining your current environment

Use the Terminal or an Anaconda Prompt for the following steps.

By default, the active environment—the one you are currentlyusing—is shown in parentheses () or brackets [] at thebeginning of your command prompt:

(myenv) $

If you do not see this, run:

conda info --envs

In the environments list that displays, your current environmentis highlighted with an asterisk (*).

By default, the command prompt is set to show the name of theactive environment. To disable this option:

conda config --set changeps1 false

To re-enable this option:

conda config --set changeps1 true

Viewing a list of your environments

To see a list of all of your environments, in your Terminal window or anAnaconda Prompt, run:

conda info --envs

OR

conda env list

A list similar to the following is displayed:

conda environments:myenv /home/username/miniconda/envs/myenvsnowflakes /home/username/miniconda/envs/snowflakesbunnies /home/username/miniconda/envs/bunnies

Viewing a list of the packages in an environment

To see a list of all packages installed in a specific environment:

  • If the environment is not activated, in your Terminal window or anAnaconda Prompt, run:

    conda list -n myenv
  • If the environment is activated, in your Terminal window or anAnaconda Prompt, run:

    conda list

To see if a specific package is installed in an environment, in your Terminal window or anAnaconda Prompt, run:

conda list -n myenv scipy

Using pip in an environment

To use pip in your environment, in your Terminal window or anAnaconda Prompt, run:

conda install -n myenv pipsource activate myenvpip <pip_subcommand>

Saving environment variables

Conda environments can include saved environment variables.

Suppose you want an environment “analytics” to store both asecret key needed to log in to a server and a path to aconfiguration file. The sections below explain how to write ascript named env_vars to do this on Windows and macOS or Linux.

This type of script file can be part of a conda package, inwhich case these environment variables become active when anenvironment containing that package is activated.

You can name these scripts anything you like. However, multiplepackages may create script files, so be sure to use descriptivenames that are not used by other packages. One popular option isto give the script a name in the formpackagename-scriptname.sh, or on Windows,packagename-scriptname.bat.

Windows

  1. Locate the directory for the conda environment in yourAnaconda Prompt by running in the command shell %CONDA_PREFIX%.

  2. Enter that directory and create these subdirectories andfiles:

    cd %CONDA_PREFIX%mkdir .\etc\conda\activate.dmkdir .\etc\conda\deactivate.dtype NUL > .\etc\conda\activate.d\env_vars.battype NUL > .\etc\conda\deactivate.d\env_vars.bat
  3. Edit .\etc\conda\activate.d\env_vars.bat as follows:

    set MY_KEY='secret-key-value'set MY_FILE=C:\path\to\my\file
  4. Edit .\etc\conda\deactivate.d\env_vars.bat as follows:

    set MY_KEY=set MY_FILE=

When you run activate analytics, the environment variablesMY_KEY and MY_FILE are set to the values you wrote into the file.When you run deactivate, those variables are erased.

macOS and Linux

  1. Locate the directory for the conda environment in your Terminal window by running in the terminal echo $CONDA_PREFIX.

  2. Enter that directory and create these subdirectories andfiles:

    cd $CONDA_PREFIXmkdir -p ./etc/conda/activate.dmkdir -p ./etc/conda/deactivate.dtouch ./etc/conda/activate.d/env_vars.shtouch ./etc/conda/deactivate.d/env_vars.sh
  3. Edit ./etc/conda/activate.d/env_vars.sh as follows:

    #!/bin/shexport MY_KEY='secret-key-value'export MY_FILE=/path/to/my/file/
  4. Edit ./etc/conda/deactivate.d/env_vars.sh as follows:

    #!/bin/shunset MY_KEYunset MY_FILE

When you run source activate analytics, the environmentvariables MY_KEY and MY_FILE are set to the values you wrote intothe file. When you run source deactivate, those variables areerased.

Sharing an environment

You may want to share your environment with someone else—forexample, so they can re-create a test that you have done. Toallow them to quickly reproduce your environment, with all of itspackages and versions, give them a copy of yourenvironment.yml file.

Exporting the environment file

NOTE: If you already have an environment.yml file in yourcurrent directory, it will be overwritten during this task.

  1. Activate the environment to export:

    • On Windows, in your Anaconda Prompt, run activate myenv
    • On macOS and Linux, in your Terminal window, run source activate myenv

    NOTE: Replace myenv with the name of the environment.

  2. Export your active environment to a new file:

    conda env export > environment.yml

    NOTE: This file handles both the environment’s pip packagesand conda packages.

  3. Email or copy the exported environment.yml file to theother person.

Creating an environment file manually

You can create an environment file manually to share with others.

EXAMPLE: A simple environment file:

name: statsdependencies: - numpy - pandas

EXAMPLE: A more complex environment file:

name: stats2channels: - javascriptdependencies: - python=3.4 # or 2.7 - bokeh=0.9.2 - numpy=1.9.* - nodejs=0.10.* - flask - pip: - Flask-Testing

You can exclude the default channels by adding nodefaultsto the channels list.

channels: - javascript - nodefaults

This is equivalent to passing the --override-channels optionto most conda commands.

Adding nodefaults to the channels list in environment.ymlis similar to removing defaults from the channelslist in the .condarc file. However,changing environment.yml affects only one of your condaenvironments while changing .condarc affects them all.

For details on creating an environment from thisenvironment.yml file, see Creating an environment from an environment.yml file.

Removing an environment

To remove an environment, in your Terminal window or anAnaconda Prompt, run:

conda remove --name myenv --all

(You may instead use conda env remove --name myenv.)

To verify that the environment was removed, in your Terminal window or anAnaconda Prompt, run:

conda info --envs

The environments list that displays should not show the removedenvironment.

Managing environments — conda 4.6.0 documentation (2024)
Top Articles
Latest Posts
Article information

Author: Eusebia Nader

Last Updated:

Views: 6480

Rating: 5 / 5 (80 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Eusebia Nader

Birthday: 1994-11-11

Address: Apt. 721 977 Ebert Meadows, Jereville, GA 73618-6603

Phone: +2316203969400

Job: International Farming Consultant

Hobby: Reading, Photography, Shooting, Singing, Magic, Kayaking, Mushroom hunting

Introduction: My name is Eusebia Nader, I am a encouraging, brainy, lively, nice, famous, healthy, clever person who loves writing and wants to share my knowledge and understanding with you.