修复 Anaconda 中的 matplotlib/numpy 依赖地狱
fixing matplotlib/numpy dependency hell in Anaconda
我在 MacBook 上使用 Anaconda 2.0.0 (x86_64) 运行 Python 2.7.11。
几周前,作为让 OpenCV 工作的过程的一部分,我将 numpy
从原来的位置(unfortunately/stupidly 我没有记录)降级到 1.7.1。我似乎记得这是必要的,我不希望 OpenCV 停止工作,所以我很确定我现在应该将 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
因此,我的问题是:如何安装(或回滚到)与我现有的 numpy
、 不兼容 [=49] 的 matplotlib
版本=] 打扰我现有的 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
版本号看起来与这里的所有其他条目相比实际上正在下降,这对我来说听起来很有希望,"in March 2016 matplotlib realized it could fall back to an earlier version of its numpy dependency".然而,当我要求修改时:
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
方面力不从心,非常感谢您的帮助。
您可以在 conda install
命令中指定所需的任何库的确切版本。例如:
$ conda install numpy=1.7.1 matplotlib=1.3
如果版本不兼容,该命令会给您一个错误,具体说明不兼容的原因。
我在 MacBook 上使用 Anaconda 2.0.0 (x86_64) 运行 Python 2.7.11。
几周前,作为让 OpenCV 工作的过程的一部分,我将 numpy
从原来的位置(unfortunately/stupidly 我没有记录)降级到 1.7.1。我似乎记得这是必要的,我不希望 OpenCV 停止工作,所以我很确定我现在应该将 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
因此,我的问题是:如何安装(或回滚到)与我现有的 numpy
、 不兼容 [=49] 的 matplotlib
版本=] 打扰我现有的 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
版本号看起来与这里的所有其他条目相比实际上正在下降,这对我来说听起来很有希望,"in March 2016 matplotlib realized it could fall back to an earlier version of its numpy dependency".然而,当我要求修改时:
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
方面力不从心,非常感谢您的帮助。
您可以在 conda install
命令中指定所需的任何库的确切版本。例如:
$ conda install numpy=1.7.1 matplotlib=1.3
如果版本不兼容,该命令会给您一个错误,具体说明不兼容的原因。