How to activate an Anaconda environment
Question:
I’m on Windows 8, using Anaconda 1.7.5 64bit.
I created a new Anaconda environment with
conda create -p ./test python=2.7 pip
from C:PrTEMPvenv
.
This worked well (there is a folder with a new python distribution). conda tells me to type
activate C:PRTEMPvenvtest
to activate the environment, however this returns:
No environment named "C:PRtempvenvtest" exists in C:PRAnacondaenvs
How can I activate the environment? What am I doing wrong?
Answers:
As you can see from the error message the paths, that you specified, are wrong. Try it like this:
activate ....tempvenvtest
However, when I needed to install Anaconda, I downloaded it from here and installed it to the default paths (C:Anaconda
), than I put this path to the environment variables, so now Anacondas interpreter is used as default. If you are using PyCharm, for example, you can specify the interpreter there directly.
I was having the same, a fix seems to have been made in the source.
If this happens you would need to set the PATH for your environment (so that it gets the right Python from the environment and Scripts on Windows).
Imagine you have created an environment called py33 by using:
conda create -n py33 python=3.3 anaconda
Here the folders are created by default in Anacondaenvs, so you need to set the PATH as:
set PATH=C:Anacondaenvspy33Scripts;C:Anacondaenvspy33;%PATH%
Now it should work in the command window:
activate py33
The line above is the Windows equivalent to the code that normally appears in the tutorials for Mac and Linux:
$ source activate py33
More info:
https://groups.google.com/a/continuum.io/forum/#!topic/anaconda/8T8i11gO39U
Does `anaconda` create a separate PYTHONPATH variable for each new environment?
Below is how it worked for me
- C:Windowssystem32>set CONDA_ENVS_PATH=d:yourlocation
- C:Windowssystem32>conda info
Shows new environment path
- C:Windowssystem32>conda create -n YourNewEnvironment –clone=root
Clones default root environment
- C:Windowssystem32>activate YourNewEnvironment
Deactivating environment “d:YourDefaultAnaconda3″…
Activating environment “d:yourlocationYourNewEnvironment”…
- [YourNewEnvironment] C:Windowssystem32>conda info -e
conda environments:
#
YourNewEnvironment
* d:yourlocationYourNewEnvironment
root d:YourDefaultAnaconda3
Note that the command for activating an environment has changed in Conda version 4.4. The recommended way of activating an environment is now conda activate myenv
instead of source activate myenv
. To enable the new syntax, you should modify your .bashrc
file. The line that currently reads something like
export PATH="<path_to_your_conda_install>/bin:$PATH"
Should be changed to
. <path_to_your_conda_install>/etc/profile.d/conda.sh
This only adds the conda
command to the path, but does not yet activate the base
environment (which was previously called root
). To do also that, add another line
conda activate base
after the first command. See all the details in Anaconda’s blog post from December 2017. (I think that this page is currently missing a newline between the two lines, it says .../conda.shconda activate base
).
(This answer is valid for Linux, but it might be relevant for Windows and Mac as well)
Use cmd instead of Powershell!
I spent 2 hours before I switched to cmd and then it worked!
create Environment:
conda create -n your_environment_name
see list of conda environments:
conda env list
activate your environment:
conda activate your_environment_name
That’s all folks
let’s assume your environment name is ‘demo’ and you are using anaconda and want to create a virtual environment:
(if you want python3)
conda create -n demo python=3
(if you want python2)
conda create -n demo python=2
After running above command you have to activate the environment by bellow command:
source activate demo
I’ve tried to activate env from Jenkins job (in bash) with
conda activate base
and it failed, so after many tries, this one worked for me (CentOS 7) :
source /opt/anaconda2/bin/activate base
For me, using Anaconda Prompt instead of cmd or PowerShell is the key.
In Anaconda Prompt, all I need to do is activate XXX
All the former answers seem to be outdated.
conda activate
was introduced in conda
4.4 and 4.6.
conda activate
: The logic and mechanisms underlying environment activation have been reworked. With conda 4.4, conda activate
and conda deactivate
are now the preferred commands for activating and deactivating environments. You’ll find they are much more snappy than the source activate
and source deactivate
commands from previous conda versions. The conda activate
command also has advantages of (1) being universal across all OSes, shells, and platforms, and (2) not having path collisions with scripts from other packages like python virtualenv’s activate script.
Examples
conda create -n venv-name python=3.6
conda activate -n venv-name
conda deactivate
These new sub-commands are available in “Aanconda Prompt” and “Anaconda Powershell Prompt” automatically. To use conda activate
in every shell (normal cmd.exe
and powershell), check expose conda
command in every shell on Windows.
References
Though @Simba had a good answer at the time, a lot has changed in the conda env since 4.6. Conda activate (env-name)
overthrew source activate (env-name)
for good but not without it own challenges. conda activate
oftentimes forces your environment to base and makes you see something like this:
and throwing loads of error back at you. This can also be because auto_activate_base
is set to True.
You can check this by using the following command
conda config --set auto_activate_base False
source ~/.bashrc
And to reactivate use this
conda config --set auto_activate_base True
source ~/.bashrc
Window:
conda activate environment_name
Mac: conda activate environment_name
One special case: If you are trying to put the activation command in a unix script, you might run into a problem because when you run the bash script, a new (linux) shell environment is created, and then destroyed when you exit that script. Think of this as running bash
, then source activate...
/ conda activate...
, then running exit
to exit that shell… The result is you end up without an activated shell… More details in How to execute script in the current shell on Linux?:
TL;DR: for linux, to activate in a bash script and leave active:
- Add the line
#!/bin/bash
as the first line of the script (This is anyways always a good practice, it specifies this is a bash script)
- Type the command
source shell_script.sh
or . shell_script.sh
Note: .
in bash is equivalent to source
in bash.
I’m using conda with Windows 10.
Anaconda was installed in:
C:UserAdminAnaconda3
After installation I’ve added this folders to system PATH:
C:UserAdminAnaconda3
C:UserAdminAnaconda3Scripts
Then I ran "Anaconda promt" from windows start menu. From this anaconda promt I created my environment with
conda create --name my_env
And after that, I’m able to activate my conda environment from regular CMD by just typing:
activate my_env
For me running this works in VS Code:
C:/ProgramData/Anaconda3/Scripts/activate
Or just creating a new Terminal.
I’m on Windows 8, using Anaconda 1.7.5 64bit.
I created a new Anaconda environment with
conda create -p ./test python=2.7 pip
from C:PrTEMPvenv
.
This worked well (there is a folder with a new python distribution). conda tells me to type
activate C:PRTEMPvenvtest
to activate the environment, however this returns:
No environment named "C:PRtempvenvtest" exists in C:PRAnacondaenvs
How can I activate the environment? What am I doing wrong?
As you can see from the error message the paths, that you specified, are wrong. Try it like this:
activate ....tempvenvtest
However, when I needed to install Anaconda, I downloaded it from here and installed it to the default paths (C:Anaconda
), than I put this path to the environment variables, so now Anacondas interpreter is used as default. If you are using PyCharm, for example, you can specify the interpreter there directly.
I was having the same, a fix seems to have been made in the source.
If this happens you would need to set the PATH for your environment (so that it gets the right Python from the environment and Scripts on Windows).
Imagine you have created an environment called py33 by using:
conda create -n py33 python=3.3 anaconda
Here the folders are created by default in Anacondaenvs, so you need to set the PATH as:
set PATH=C:Anacondaenvspy33Scripts;C:Anacondaenvspy33;%PATH%
Now it should work in the command window:
activate py33
The line above is the Windows equivalent to the code that normally appears in the tutorials for Mac and Linux:
$ source activate py33
More info:
https://groups.google.com/a/continuum.io/forum/#!topic/anaconda/8T8i11gO39U
Does `anaconda` create a separate PYTHONPATH variable for each new environment?
Below is how it worked for me
- C:Windowssystem32>set CONDA_ENVS_PATH=d:yourlocation
- C:Windowssystem32>conda info
Shows new environment path
- C:Windowssystem32>conda create -n YourNewEnvironment –clone=root
Clones default root environment
- C:Windowssystem32>activate YourNewEnvironment
Deactivating environment “d:YourDefaultAnaconda3″…
Activating environment “d:yourlocationYourNewEnvironment”…
- [YourNewEnvironment] C:Windowssystem32>conda info -e
conda environments:
#
YourNewEnvironment
* d:yourlocationYourNewEnvironment
root d:YourDefaultAnaconda3
Note that the command for activating an environment has changed in Conda version 4.4. The recommended way of activating an environment is now conda activate myenv
instead of source activate myenv
. To enable the new syntax, you should modify your .bashrc
file. The line that currently reads something like
export PATH="<path_to_your_conda_install>/bin:$PATH"
Should be changed to
. <path_to_your_conda_install>/etc/profile.d/conda.sh
This only adds the conda
command to the path, but does not yet activate the base
environment (which was previously called root
). To do also that, add another line
conda activate base
after the first command. See all the details in Anaconda’s blog post from December 2017. (I think that this page is currently missing a newline between the two lines, it says .../conda.shconda activate base
).
(This answer is valid for Linux, but it might be relevant for Windows and Mac as well)
Use cmd instead of Powershell!
I spent 2 hours before I switched to cmd and then it worked!
create Environment:
conda create -n your_environment_name
see list of conda environments:
conda env list
activate your environment:
conda activate your_environment_name
That’s all folks
let’s assume your environment name is ‘demo’ and you are using anaconda and want to create a virtual environment:
(if you want python3)
conda create -n demo python=3
(if you want python2)
conda create -n demo python=2
After running above command you have to activate the environment by bellow command:
source activate demo
I’ve tried to activate env from Jenkins job (in bash) with
conda activate base
and it failed, so after many tries, this one worked for me (CentOS 7) :
source /opt/anaconda2/bin/activate base
For me, using Anaconda Prompt instead of cmd or PowerShell is the key.
In Anaconda Prompt, all I need to do is activate XXX
All the former answers seem to be outdated.
conda activate
was introduced in conda
4.4 and 4.6.
conda activate
: The logic and mechanisms underlying environment activation have been reworked. With conda 4.4,conda activate
andconda deactivate
are now the preferred commands for activating and deactivating environments. You’ll find they are much more snappy than thesource activate
andsource deactivate
commands from previous conda versions. Theconda activate
command also has advantages of (1) being universal across all OSes, shells, and platforms, and (2) not having path collisions with scripts from other packages like python virtualenv’s activate script.
Examples
conda create -n venv-name python=3.6
conda activate -n venv-name
conda deactivate
These new sub-commands are available in “Aanconda Prompt” and “Anaconda Powershell Prompt” automatically. To use conda activate
in every shell (normal cmd.exe
and powershell), check expose conda
command in every shell on Windows.
References
Though @Simba had a good answer at the time, a lot has changed in the conda env since 4.6. Conda activate (env-name)
overthrew source activate (env-name)
for good but not without it own challenges. conda activate
oftentimes forces your environment to base and makes you see something like this:
and throwing loads of error back at you. This can also be because auto_activate_base
is set to True.
You can check this by using the following command
conda config --set auto_activate_base False
source ~/.bashrc
And to reactivate use this
conda config --set auto_activate_base True
source ~/.bashrc
Window:
conda activate environment_name
Mac: conda activate environment_name
One special case: If you are trying to put the activation command in a unix script, you might run into a problem because when you run the bash script, a new (linux) shell environment is created, and then destroyed when you exit that script. Think of this as running bash
, then source activate...
/ conda activate...
, then running exit
to exit that shell… The result is you end up without an activated shell… More details in How to execute script in the current shell on Linux?:
TL;DR: for linux, to activate in a bash script and leave active:
- Add the line
#!/bin/bash
as the first line of the script (This is anyways always a good practice, it specifies this is a bash script) - Type the command
source shell_script.sh
or. shell_script.sh
Note: .
in bash is equivalent to source
in bash.
I’m using conda with Windows 10.
Anaconda was installed in:
C:UserAdminAnaconda3
After installation I’ve added this folders to system PATH:
C:UserAdminAnaconda3
C:UserAdminAnaconda3Scripts
Then I ran "Anaconda promt" from windows start menu. From this anaconda promt I created my environment with
conda create --name my_env
And after that, I’m able to activate my conda environment from regular CMD by just typing:
activate my_env
For me running this works in VS Code:
C:/ProgramData/Anaconda3/Scripts/activate
Or just creating a new Terminal.