python conda: created a environment, but it is not using conda's python

Question:

I have been using anaconda for a while, and its Python executable is located at /Users/ufo/opt/anaconda3/bin/python. I have tried to create an environment with conda, and the new environment would use copy this Python to environment’s bin.

However, with current Anaconda versation, the new environment will not use anaconda’s Python, but use the original Python pre-installed with Mac OS, which was python 2.*.

Here is a snip of checking anaconda python version, creating/activating new environment, and checking again. From the snip I noticed the change of $PATH as well as Python versions.

How can I still use anaconda’s Python in new environment?

(base) ufo@ufodeMacBook-Pro:~$ echo $PATH
/Users/ufo/opt/anaconda3/bin:/Users/ufo/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
(base) ufo@ufodeMacBook-Pro:~$ which python
/Users/ufo/opt/anaconda3/bin/python
(base) ufo@ufodeMacBook-Pro:~$ python -V
Python 3.7.5
(base) ufo@ufodeMacBook-Pro:~$ conda info -e
# conda environments:
#
base                  *  /Users/ufo/opt/anaconda3

(base) ufo@ufodeMacBook-Pro:~$ conda create -n msg
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /Users/ufo/opt/anaconda3/envs/msg



Proceed ([y]/n)? 

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate msg
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) ufo@ufodeMacBook-Pro:~$ conda activate msg
(msg) ufo@ufodeMacBook-Pro:~$ which python
/usr/bin/python
(msg) ufo@ufodeMacBook-Pro:~$ echo $PATH
/Users/ufo/opt/anaconda3/envs/msg/bin:/Users/ufo/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
(msg) ufo@ufodeMacBook-Pro:~$ conda info -e
# conda environments:
#
base                     /Users/ufo/opt/anaconda3
msg                   *  /Users/ufo/opt/anaconda3/envs/msg

(msg) ufo@ufodeMacBook-Pro:~$ python -V
Python 2.7.10
(msg) ufo@ufodeMacBook-Pro:~$ 
Asked By: Cuteufo

||

Answers:

An easy workaround would be to export the path to the python you require once you activate the environment. As can be seen in the below snipet.

export PATH=/Users/ufo/opt/anaconda3/bin/:$PATH

you can then use which python to see if your python is rightly set

To use your environments python do

export PATH=/Users/ufo/opt/anaconda3/envs/msg/bin/:$PATH
Answered By: ArunJose
conda install jupyterlab

This fixed it , in my case.

Answered By: Mohammad Amaan

I ran into the issue after creation of a new environment. However in my case, after conda activate myenv, the ~/miniconda3/envs/myenv/bin/ directory was present. When I specifically called the myenv python with (base) user@station:~$ /miniconda3/envs/myenv/bin/python I received bash: ~/miniconda3/envs/myenv/bin/python: Permission denied

It turns out that upon inspecting the myenv python version:
(base) user@station:~$ ll ~/miniconda3/envs/symdesign/bin/python3.10 I see that indeed I don’t have permission -rw-r--r-- 1 user group 23512064 Aug 24 09:12 miniconda3/envs/symdesign/bin/python3.10

I have seen this from time to time with conda, that for some reason conda doesn’t grant permissions to the myenv python version. Therefore, I believe my issue was that as bash searches $PATH for python, it fails with the myenv python due to the permissions, then falls back to /usr/bin/python

Answered By: Kyle Meador
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.