2017-08-09 22 views
1

我试图用condas来安装使用Python 2.7和numpy的版本1.10畅达蟒蛇没有使用numpy的版本,我尝试安装,如果我还指定它应该使用Python 2

我尝试的环境创造这样的环境

conda create -n test2 python=2.7 numpy=1.10 

它辩称这是要安装我指定

下列新软件包将被安装的软件:

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 

,然后激活并运行蟒蛇

source activate test2 
python 

它会通知我,我用Python版本2.7.13,然后我尝试检查numpy的版本号

import numpy 
numpy.version.version 

它告诉我我有版本

'1.13.0'

这不是我指定的版本。另一方面,如果我跳过指定python版本,它会安装python 3,但正确版本的numpy(1.10.4)

有关这里发生了什么的任何想法?此外,我该如何解决这个问题?谢谢!

编辑:按UVAR的评论

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

告诉我

下列新软件包将被安装:

numpy: 1.10.4-py27_2 
python: 2.7.13-0 

但当时如果我source activate test4和检查numpy版本号,它告诉我我再次运行1.13.0。

编辑2(再次响应由UVAR查询):

conda list -n test2 

回报

#在/家庭包在环境/ ohnoplus/anaconda3/ENVS /测试2:

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 

编辑3: 如果我source activate test2然后蟒蛇import numpynumpy.__file__里面我得到以下

“/home/ohnoplus/.local/lib/python2.7/site-packages/numpy/__init__。PYC”

同时,如果蟒蛇之外,但是test2的里面,我echo $PATH

我得到

/家庭/ ohnoplus/anaconda3/ENVS/test2的/ bin中:/首页/ 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

编辑4: @Uvar和@MSeifert指出我应该让我的路径变量指向正确的位置。我会实验得到这个权利,但我有几个问题:

我发现,如果我看sys.paths在test2的蟒蛇sys.path中似乎找对了地方numpy的

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']

我应该在命令中引用来更新$ PATH行,这个sys.path变量,还是别的?

+0

您正在运行'source activate'或'source activate test2'吗?如果您正在运行前者,则切换到'root' env,而不是您刚刚创建的那个。 – JoshAdel

+0

对不起。这是一个错误的类型在stackoverflow。我在我的系统上运行了'source activate test2'来获取所描述的行为。 – ohnoplus

+0

所以,如果我遵循完全相同的步骤,对我来说没有问题。然后再次,我有一个Windows安装。从正在安装的软件包中,我可以看到您可能拥有OSX?有可能你的root python安装是干扰的。你可以用'--no-deps'标志来试试吗? – Uvar

回答

0

好的。得到它了!当我运行sys.path时,它在“anaconda3/envs/test2/lib/python2.7/site-packages”中查找之前查找“.local/lib/python2.7/site-packages”

我不以为我曾经在.local中使用python版本,所以我只是将〜/ .local/lib中的python2.7目录移出来。这似乎弥补了这个问题。现在,当我导入numpy时,版本与预期一致。

参考: 下面的讨论连同乌瓦尔和MSeifert的评论,指出我解决这个问题的方向。

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

相关问题