如何安全地“反复卸载numpy”?为什么有这个必要?

时间:2019-05-02 01:08:00

标签: python conda

按照http://sfepy.org/doc-devel/installation.html#installing-sfepy中的说明,我使用

将SfePy安装到了Python 2.7 anaconda上。
  

conda install -c conda-forge sfepy

此后,我不再可以导入numpy

>>> import numpy as np
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/david/anaconda2/lib/python2.7/site-packages/numpy/__init__.py", line 142, in <module>
    from . import core
  File "/Users/david/anaconda2/lib/python2.7/site-packages/numpy/core/__init__.py", line 91, in <module>
    raise ImportError(msg.format(path))
ImportError: Something is wrong with the numpy installation. While importing we 
detected an older version of numpy in ['/Users/david/anaconda2/lib/python2.7/site-packages/numpy']. One method of fixing this is to repeatedly uninstall numpy until none is found, then reinstall this version.

我看到消息末尾包含一些建议:

  

解决此问题的一种方法是反复卸载numpy,直到找不到为止,然后重新安装该版本。

问题:

  1. 如何安全地“反复卸载numpy”? This answer提到conda remove --force,但这听起来让我感到恐惧。
  2. 一旦“找不到任何人”,conda install -c conda-forge sfepy会再次重新安装一个很好的Numpy吗?
  3. 为什么会发生这种情况?它可能反映出一些潜在的严重问题,还是仅仅是“其中之一”,我应该“反复卸载numpy”并继续我的生活?

1 个答案:

答案 0 :(得分:3)

重复一次卸载numpy通常是使用pip进行安装的时间。因为您使用的是Conda,所以尝试DirectoryInfo d = new DirectoryInfo(@"C:\MyPath"); FileInfo[] infos = d.GetFiles(); foreach(FileInfo f in infos) { File.Move(f.FullName, f.FullName.Replace("Error_","")); } 将删除numpy和所有依赖于numpy的程序包(以及依赖于这些程序的任何程序包,等等)。

通常,这意味着您将破坏环境。使用Conda的全部目的是创建新的,隔离的环境,这样您就不必担心会遇到什么:包冲突。

您应该采取的步骤是:

  1. 卸载Anaconda,看来您可能已使基础安装感到厌烦。另外,请下车PYTHON 2.7!

  2. 最好使用Python 3.6或更高版本重新安装Anaconda。

  3. 使用conda创建隔离的环境供您使用。 conda uninstall numpy

  4. 激活并使用该环境进行有限分析。 conda create -n finite python=3.6 sfepy numpy pandas ipython