如果我还指定它应该使用python 2

时间:2017-08-09 17:33:44

标签: python python-2.7 numpy conda

我正在尝试使用condas来安装使用python 2.7和numpy版本1.10的环境

我尝试创建这样的环境

 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

然后激活它并运行python

 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

返回

  环境中的#p>包在/ 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

编辑3: 如果我source activate test2然后在python import numpynumpy.__file__内,我会得到以下内容

  

' /home/ohnoplus/.local/lib/python2.7/site-packages/numpy / __初始化__的pyc'

同时如果在python之外,但在test2之内,我echo $PATH

我得到了

  

/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 /游戏:在/ usr /本地/游戏:/ SNAP / bin中

编辑4: @Uvar和@MSeifert指出我应该让我的路径变量指向正确的位置。我会尝试做到这一点,但我有几个问题:

我注意到如果我查看sys.paths,test2中的python 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',&# 39; /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']

  

我是否应该更新命令行,此sys.path变量或其他内容中引用的$ PATH?

1 个答案:

答案 0 :(得分:0)

确定。得到它了!当我运行protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); MvxAndroidSetupSingleton.EnsureSingletonAvailable(this.ApplicationContext).EnsureInitialized(); this.LifetimeListener.OnCreate(this); Xamarin.Forms.Forms.Init(this, bundle); this.FormsApplication = new MyFormsApp(); base.LoadApplication(this.FormsApplication); } 时,它会查看“.local / lib / python2.7 / site-packages”,然后查看“anaconda3 / envs / test2 / lib / python2.7 / site-packages”

我不认为我曾经在.local中使用python版本,因此我只是将python2.7目录移出〜/ .local / lib。这似乎可以解决这个问题。现在,当我导入numpy时,版本符合预期。

参考: 下面的讨论以及Uvar和MSeifert的评论指出了解决这个问题的方向。

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