2017-08-09 33 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

相關問題