【问题标题】:Trouble creating a conda env with working numpy: `ImportError: cannot import name scalarmath`使用工作 numpy 创建 conda env 时遇到问题:`ImportError: cannot import name scalarmath`
【发布时间】: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 种方法:

  1. conda create -n B python=2.7.10 然后conda install -n B numpy=1.9.3
  2. conda create --name B --clone A
  3. conda 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


【解决方案1】:

似乎提问者已经解决了他的问题,但我遇到了类似的问题并遇到了这个问题,所以我将其发布给其他人。我的问题是一个相当愚蠢的问题,因为我在调用脚本之前没有先指定python,所以我做了script.py 而不是python script.py 所以没有调用Miniconda python 可执行文件,这意味着它不能从 conda env 导入任何东西。

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多