11

I have just created a new env with python 3.5 using anaconda (called it python35). My root env points to python 2.7.11. I cant seem to launch ipython with this new env, here is what I did

1. in conda prompt, activate required env: activate python35
2. confirm the version: python --version
3. launch ipython: ipython notebook
4. open a notebook and do: import sys; print (sys.version)

Step #2, returns 3.5 but step #4 always gives me 2.7.11, its like ipython is picking up python version from root env. How do I fix this. Thanks for any help!

This question is related but I have already done what it suggests.

Community
  • 1
  • 1
user2696565
  • 587
  • 1
  • 8
  • 17

3 Answers3

15

AFAIK, different environments in anaconda (and in venv as well) are activated by prepending env path to $PATH environment variable. It means, that if some file (eg, ipython) is not found in env path (the first entry of $PATH), the system searches for it in consequent entries of $PATH and finds it in root environment (that stays in $PATH). To fix the behavior, you need to install its own copy of ipython to anaconda env:

  1. In command prompt, activate the environment: source activate python35 (or simply activate python35, depending on the OS)
  2. While in environment, issue the command conda install ipython-notebook
Andrey Sobolev
  • 12,353
  • 3
  • 48
  • 52
  • I more question please - do I need to install all other things as well. Because currently it does not even recognize numpy. Throws "ImportError: No module named 'numpy'" – user2696565 Oct 23 '16 at 18:23
  • 1
    Yes, you need to install all packages you need in the same manner (as even the codebase might be different for different Python versions) – Andrey Sobolev Oct 23 '16 at 18:32
  • 1
    And actually that is the essence of virtualenv - to provide the user with completely isolated (that is, independent from root) Python environment – Andrey Sobolev Oct 23 '16 at 18:36
  • Is there a way to install all common packages in a new environment, I mean the default installation comes up numpy, scipy etc. is there a single command to install all such in packages in new environment as well. – user2696565 Oct 23 '16 at 19:53
  • 1
    You can write a requirements.txt file, and then do `conda install --file requirements.txt` – Andrey Sobolev Oct 24 '16 at 03:06
5

An addition to Andrey Sobolev solution,you should switch to conda install ipython for higher python3.x version and log out the environment by Ctrl+D or conda deactivate then activate again

dtlam26
  • 1,410
  • 11
  • 19
0

I could confirm the solution above (basically install notebook in active environment) in my case. Two updates from my side:

  1. Since Anaconda 4.4 (?) ipython notebook is now jupyter notebook. So I had to install jupyter instead. I guess, deactivate and activate was required afterwards to get the path variables in notebook updated -> checked by python -c "import sys; print(sys.path)" or corresponding command in notebook.

  2. If you aren't using a isolated anaconda environment, you may eventual calling the notebook package from your native OS-Python installation, instead the desired from Anaconda. Similarly, I had trouble with cmake or cxx, when I try to compile in Anaconda Environment - the diffent root folder might found in linux bash with e.g "which jupyter"

Steve
  • 11
  • 1