【发布时间】:2015-11-27 14:01:45
【问题描述】:
我想创建一个具有工作 numpy 模块的 conda env(比如 B)。我有一个工作的 miniconda 安装和另一个工作 numpy 的 conda env(比如 A),但无论我尝试什么方法,我都无法获得另一个工作 numpy 的环境。
导入时出现的错误如下:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/sahaamo/miniconda2/envs/B/lib/python2.7/site-packages/numpy/__init__.py", line 170, in <module>
from . import add_newdocs
File "/home/sahaamo/miniconda2/envs/B/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "/home/sahaamo/miniconda2/envs/B/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
from .type_check import *
File "/home/sahaamo/miniconda2/envs/B/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "/home/sahaamo/miniconda2/envs/B/lib/python2.7/site-packages/numpy/core/__init__.py", line 20, in <module>
from . import scalarmath
ImportError: cannot import name scalarmath
到目前为止,我已经尝试了 3 种方法:
-
conda create -n B python=2.7.10然后conda install -n B numpy=1.9.3 conda create --name B --clone Aconda create -n B python=2.7.10 numpy=1.9.3
我每次都遇到同样的错误。我的平台是 Ubuntu 14.04。 which python 的输出为:
/home/sahaamo/miniconda2/envs/B/bin/python
我的 Python 路径如下所示:
~$ python -c "import sys; print(sys.path)"
['',
'/home/sahaamo/miniconda2/envs/B/lib/python27.zip',
'/home/sahaamo/miniconda2/envs/B/lib/python2.7',
'/home/sahaamo/miniconda2/envs/B/lib/python2.7/plat-linux2',
'/home/sahaamo/miniconda2/envs/B/lib/python2.7/lib-tk',
'/home/sahaamo/miniconda2/envs/B/lib/python2.7/lib-old',
'/home/sahaamo/miniconda2/envs/B/lib/python2.7/lib-dynload',
'/home/sahaamo/miniconda2/envs/B/lib/python2.7/site-packages',
'/home/sahaamo/miniconda2/envs/B/lib/python2.7/site-packages/setuptools-18.5-py2.7.egg']
【问题讨论】:
-
你确定你已经切换到新创建的环境吗?尝试
~$ source activate B,假设B是您刚刚创建的环境的名称。您的 bash 提示符应更改为(B)~$。您可以使用~$ conda info --envs查看哪些环境可用。 -
是的,切换了。事实上,因为 numpy 无论如何都可以在其他环境中工作,所以不切换不会给出错误。
-
你能不能逗我一下,试着创建一个只包含 numpy 而没有克隆的新环境,例如使用
conda create -n test python=2.7.10 numpy=1.9.3?您是否看到来自conda的任何异常输出? -
哇,好用。 (这显然是我的问题中的方法 3)我知道这里发生了什么。在创建空白环境后,我从未真正导入过 numpy。我安装了 pandas 0.16.2,由于某种原因,它也将 numpy 升级到了 1.10.1。这很奇怪,因为我选择了与虚拟环境 A 中完全相同的版本,一切正常。因此 conda create -n B python=2.7.10 numpy=1.9.3 pandas=0.16.2 正是我所需要的。
-
我很难判断您的原始安装可能出了什么问题,但这就是拥有独立 python 环境的美妙之处——如果出现问题,那么删除问题环境并从头开始相对容易从头开始。
标签: python numpy anaconda conda