2016-04-22 26 views
5

我在MacBook上的Anaconda 2.0.0(x86_64)下運行Python 2.7.11。幾個星期前,作爲獲得OpenCV工作流程的一部分,我將它從任何地方(不幸地/愚蠢地我沒有記錄)降級到了1.7.1。我似乎記得這是必要的,我不希望OpenCV停止工作,所以我很確定我現在應該離開numpy在Anaconda修復matplotlib/numpy依賴性地獄

但是,今天我發現這已經打破了我的matplotlib/pylab。當我做import pylab我得到如下:

--------------------------------------------------------------------------- 
RuntimeError        Traceback (most recent call last) 
RuntimeError: module compiled against API version 9 but this version of numpy is 7 
--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last)  
... 
... 
ImportError: numpy.core.multiarray failed to import 

我的問題,因此,是:我怎麼安裝(或回滾到)一個版本的matplotlib這是我現有的numpy兼容不干擾我現有的numpy

這裏就是我這麼遠:基於SO相關conda問題,我看着conda list --revisions matplotlib輸出,其中包括:

... 
2016-03-28 17:16:36 (rev 6) 
    conda {3.8.3 -> 4.0.5} 
    conda-env {2.0.1 -> 2.4.5} 
    numpy {1.8.1 -> 1.7.1} 
    ... 

現在我不知道如何解釋這一點,但給定numpy版本號似乎實際上與所有其他條目相反,這聽起來對我來說似乎很有希望,「2016年3月,matplotlib意識到它可能會回落到之前版本的numpy依賴性。然而,當我問這個修訂:

conda install --revision=6 matplotlib 

我被告知我已經擁有它,而且它依賴是numpy 1.8:

Fetching package metadata: .... 

# All requested packages already installed. 
# packages in environment at /Users/jez/anaconda: 
# 
matplotlib    1.3.1    np18py27_1 <unknown> 

所以從這裏我不知道如何繼續。我暫時玩過conda install matplotlib的一些變化,但它顯然想同時混淆我的numpy,所以我從來沒有按y。同樣清楚的是,我在conda以外深度,所以非常感謝你的幫助。

回答

6

您可以在conda install命令中指定所需庫的確切版本。例如:

$ conda install numpy=1.7.1 matplotlib=1.3 

如果版本不兼容,那麼該命令會給出一個錯誤,指明確切的不兼容性。

+0

謝謝,就是這樣!對我來說有效的是指定'numpy'依賴的版本,但未指定'matplotlib'版本。 'conda'然後計算出並報告了以下變化:'matplotlib:1.3.1-np18py27_1 - > 1.3.1-np17py27_0' – jez