Python:安装了 Anaconda,但无法在 Jupyter 笔记本中导入 numpy 或 matplotlib

Posted

技术标签:

【中文标题】Python:安装了 Anaconda,但无法在 Jupyter 笔记本中导入 numpy 或 matplotlib【英文标题】:Python: Installed Anaconda, but can't import numpy or matplotlib in Jupyter notebook 【发布时间】:2016-10-11 16:15:11 【问题描述】:

我是 Python 新手,所以也许有一个简单的解决方案。我安装了 Anaconda 并认为一切都很简单,但即使 Jupyter 工作正常,我也无法将 numpy 和 matplotlib 导入我的笔记本。相反,我得到了这个错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-1e0540761e0c> in <module>()
----> 1 import matplotlib.pyplot as plt
      2 vals = [1, 2, 3, 4]
      3 plt.plot(vals)

//anaconda/lib/python3.5/site-packages/matplotlib/__init__.py in <module>()
    120 # cbook must import matplotlib only within function
    121 # definitions, so it is safe to import from it here.
--> 122 from matplotlib.cbook import is_string_like, mplDeprecation, dedent, get_label
    123 from matplotlib.compat import subprocess
    124 from matplotlib.rcsetup import (defaultParams,

//anaconda/lib/python3.5/site-packages/matplotlib/cbook.py in <module>()
     31 from weakref import ref, WeakKeyDictionary
     32 
---> 33 import numpy as np
     34 import numpy.ma as ma
     35 

//anaconda/lib/python3.5/site-packages/numpy/__init__.py in <module>()
    144         return loader(*packages, **options)
    145 
--> 146     from . import add_newdocs
    147     __all__ = ['add_newdocs',
    148                'ModuleDeprecationWarning',

//anaconda/lib/python3.5/site-packages/numpy/add_newdocs.py in <module>()
     11 from __future__ import division, absolute_import, print_function
     12 
---> 13 from numpy.lib import add_newdoc
     14 
     15 ###############################################################################

//anaconda/lib/python3.5/site-packages/numpy/lib/__init__.py in <module>()
      6 from numpy.version import version as __version__
      7 
----> 8 from .type_check import *
      9 from .index_tricks import *
     10 from .function_base import *

//anaconda/lib/python3.5/site-packages/numpy/lib/type_check.py in <module>()
      9            'common_type']
     10 
---> 11 import numpy.core.numeric as _nx
     12 from numpy.core.numeric import asarray, asanyarray, array, isnan, \
     13                 obj2sctype, zeros

//anaconda/lib/python3.5/site-packages/numpy/core/__init__.py in <module>()
     12         os.environ[envkey] = '1'
     13         env_added.append(envkey)
---> 14 from . import multiarray
     15 for envkey in env_added:
     16     del os.environ[envkey]

ImportError: dlopen(//anaconda/lib/python3.5/site-packages/numpy/core/multiarray.so, 10): Symbol not found: _strnlen
  Referenced from: /anaconda/lib/python3.5/site-packages/numpy/core/../../../..//libmkl_intel_lp64.dylib
  Expected in: flat namespace
 in /anaconda/lib/python3.5/site-packages/numpy/core/../../../..//libmkl_intel_lp64.dylib

由于这两个包都出现在$ conda list 中,它可能存在某种链接错误(?),但不幸的是,初学者很难自己解决这个问题。任何人都可以帮忙吗?

【问题讨论】:

乍一看,这似乎是您安装的一个严重问题,因为该错误涉及一些与 NumPy 内部结构有关的 .dylib (DYnamic LIBrary) 文件,而不是您的代码。跨度> @ForceBru 除了下载和安装 Anaconda、打开 Jupyter 笔记本并运行一些简单的脚本之外,我什么也没做。 我明白了,但这对我来说仍然是一个非常奇怪的错误,因为它抱怨缺少 _strnlen C 标准库符号这一事实,而且这个符号有点标准,应该存在,但它不是... 我在一个相当旧的系统(OS X 10.6.8)上,但我有 Python 3.5 并且所有软件包都安装得很好并且是最新的。 @ForceBru 看来_strnlen确实在10.6.8中缺失了,见here和here。有没有办法手动添加?如果我因此而无法使用 SciPy,那将是非常令人沮丧的。 【参考方案1】:

问题的关键可能是您运行的是相当旧的 Mac OS X 版本,因为 _strnlen 甚至不可用 until 10.7 release。

Anaconda 至少是为 OS X 10.7 构建的(根据this),因此您可能在这里运气不佳,可能的解决方案是升级系统。

【讨论】:

【参考方案2】:

好的,如果我正确理解你的意思,我建议你将包添加到你的 python 文件所在的同一文件夹中。如果可能的话,添加你用来导入数据的代码,这样我就可以找到任何可能的错误

【讨论】:

错误信息开头引用的代码。 好的,你试过我提到的吗?问题是您的问题无法找到该包,因此您会收到错误 Expected in: flat namespace in /anaconda/lib/python3.5/site-packages/numpy/core/../../../ ..//libmkl_intel_lp64.dylib 如果我最初提到的内容不起作用,请尝试在文件夹 packages 中的 python 3.5 文件夹中添加您的包 @LamprosTzanetos 我尝试将numpy-1.11.2-py35_0 文件夹复制到项目目录,但给出了相同的错误消息。 我过去也遇到过类似的问题。您必须找到包文件夹而不是项目目录。如果找不到,请将程序文件和包添加到新文件夹中,然后再次尝试运行程序。

以上是关于Python:安装了 Anaconda,但无法在 Jupyter 笔记本中导入 numpy 或 matplotlib的主要内容,如果未能解决你的问题,请参考以下文章

Anaconda 已安装但无法启动 Navigator

用 Anaconda 安装了一个包,无法在 Python 中导入

使用 Anaconda (Python) 在 Windows 上安装 Pyomo

Anaconda python已安装模块但导入失败

dlib 已安装但无法在 spyder 或 anaconda 中导入

在 mac 上安装 anaconda 后出现错误“mach-o,但架构错误”