简体   繁体   中英

conda python isn't using the numpy version I try install if I also specify that it should use python 2

I am trying to use condas to install an environment that uses python 2.7 and numpy version 1.10

I try to create such an environment

 conda create -n test2 python=2.7 numpy=1.10

It contends it is going to install the software I specified

The following NEW packages will be INSTALLED:

 mkl: 11.3.3-0 numpy: 1.10.4-py27_2 openssl: 1.0.2l-0 pip: 9.0.1-py27_1 python: 2.7.13-0 readline: 6.2-2 setuptools: 27.2.0-py27_0 sqlite: 3.13.0-0 tk: 8.5.18-0 wheel: 0.29.0-py27_0 zlib: 1.2.8-3 

and then activate it and run python

 source activate test2
 python

it informs me I am using python version 2.7.13 and then I try check the numpy version number

 import numpy
 numpy.version.version

It tells me I have version

'1.13.0'

which is not the version I specified. On the other hand, If I skip specifying the python version, it installs python 3, but the correct version of numpy (1.10.4)

Any ideas about what is going on here? Furthermore, how do I fix this? Thanks!

Edit: as per Uvar's comment

 conda create -n test4 python=2.7 numpy=1.10 --no-deps

Tells me

The following NEW packages will be INSTALLED:

 numpy: 1.10.4-py27_2 python: 2.7.13-0 

but then if I source activate test4 and check the numpy version number, it tells me I am running 1.13.0 again.

Edit 2 (Again in response to a query by Uvar):

 conda list -n test2

returns

# packages in environment at /home/ohnoplus/anaconda3/envs/test2:

#

  mkl 11.3.3 0 numpy 1.10.4 py27_2 openssl 1.0.2l 0 pip 9.0.1 py27_1 python 2.7.13 0 readline 6.2 2 setuptools 27.2.0 py27_0 sqlite 3.13.0 0 tk 8.5.18 0 wheel 0.29.0 py27_0 zlib 1.2.8 3 

Edit 3: If I source activate test2 and then inside of python import numpy and numpy.__file__ I get the following

'/home/ohnoplus/.local/lib/python2.7/site-packages/numpy/__init__.pyc'

meanwhile if outside of python, but inside of test2, I echo $PATH

I get

/home/ohnoplus/anaconda3/envs/test2/bin:/home/ohnoplus/anaconda3/bin:/home/ohnoplus/bin:/home/ohnoplus/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Edit 4: @Uvar and @MSeifert point out that I should get my path variables pointing in the right place. I'll experiment with getting this right but I have a couple of questions:

I notice that the python sys.path in test2 appears to be looking in the right place for numpy if I look at sys.paths

 import sys
 print (sys.path)

['', '/home/ohnoplus/anaconda3/envs/test2/lib/python27.zip', '/home/ohnoplus/anaconda3/envs/test2/lib/python2.7', '/home/ohnoplus/anaconda3/envs/test2/lib/python2.7/plat-linux2', '/home/ohnoplus/anaconda3/envs/test2/lib/python2.7/lib-tk', '/home/ohnoplus/anaconda3/envs/test2/lib/python2.7/lib-old', '/home/ohnoplus/anaconda3/envs/test2/lib/python2.7/lib-dynload', '/home/ohnoplus/.local/lib/python2.7/site-packages', '/home/ohnoplus/anaconda3/envs/test2/lib/python2.7/site-packages', '/home/ohnoplus/anaconda3/envs/test2/lib/python2.7/site-packages/setuptools-27.2.0-py2.7.egg']

Should I be updating $PATH in as referenced in the command line, this sys.path variable, or something else?

Ok. Got it! When I run sys.path it looks in ".local/lib/python2.7/site-packages" before it looks in "anaconda3/envs/test2/lib/python2.7/site-packages"

I don't think I was ever using the python version in .local, and so I just moved the python2.7 directory out of ~/.local/lib. This seemed to remedy the problem. Now when I import numpy, the version is as expected.

Reference: The discussion linked below, along with the comments of Uvar and MSeifert, pointed me in the direction to solve this problem.

https://github.com/conda/conda/issues/448

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM