【问题标题】:jupyter doesn't import numpy after upgrade with anaconda使用 anaconda 升级后 jupyter 不导入 numpy
【发布时间】:2016-11-25 03:22:31
【问题描述】:

我使用 conda update --all 更新了软件包,并使用 jupyter 工作。在更新之前,一切正常,但现在 jupyter 不会导入 sys、os、copy 和 time 之外的任何模块。 Numpy、matplotlib 和 theano 没有被导入。但它们肯定在 conda 列表中……python 版本是 2.7.12

当我用 conda 更新时,我记得有一条消息说 numpy 由于冲突而被贬值。现在在 conda list 我有 numpy 1.11.1。

我是 python 新手,所以我不明白导入错误。在再次卸载所有内容之前,我想了解要学习什么问题,当然还要继续使用 jupyter ;) 我发现这篇文章 https://github.com/jupyter/notebook/issues/397 (对不起,我无法链接它,我是新来的)这似乎与我的或类似的问题有关,但我没有我觉得我理解得不是很好...所以在我打破更多之前我想在这里问一下!

jupyter 是否严重“连接”到 anaconda?如何检查包裹在哪里被搜索?对于对此的任何评论,我将不胜感激!! 以下是 jupyter 的单元格:

cells of jupyter

我得到的错误:

ImportError

谢谢!

【问题讨论】:

  • 如果可以导入sys,请导入sys,看看sys.path的输出,会显示路径列表。如果您已经安装了 anaconda,则路径应该类似于 .../anaconda2/lib/python2.7/..... 。你能告诉我吗
  • 谢谢! sys.path 的输出是://'/scratch/hruiz/anaconda2/lib/python27.zip', '/scratch/hruiz/anaconda2/lib/python2.7', '/scratch/hruiz/anaconda2/lib/ python2.7/plat-linux2', '/scratch/hruiz/anaconda2/lib/python2.7/lib-tk', '/scratch/hruiz/anaconda2/lib/python2.7/lib-old', '/scratch /hruiz/anaconda2/lib/python2.7/lib-dynload','/home/hruiz/.local/lib/python2.7/site-packages','/scratch/hruiz/anaconda2/lib/python2.7/ site-packages/Sphinx-1.4.1-py2.7.egg', '/scratch/hruiz/anaconda2/lib/python2.7/site-packages', ... 还有更多(不能全部发布) .有什么有用的信息吗? :)
  • 如果安装了anaconda,那么所有的python包都应该从.../anaconda2/lib/python2.7/.....导入,但是,我看到你导入错误表明你是从其他目录导入。请尝试“conda install ipython”,然后笔记本可能会使用 anaconda 的 ipython。你也可以使用“which ipython”来证明(输出应该是..../anaconda2/bin)
  • 再次感谢@TianZhang!我尝试了conda istall ipython,它说:# 所有请求的包都已安装。 # /scratch/hruiz/anaconda2 环境中的包:ipython 5.0.0 py27_0 但是,which ipython 并没有给我预期的 .../anaconda2/bin。相反,我得到 /usr/bin/ipython... 这一定是问题吧?有没有简单的出路?我可以改变那条路吗? conda install 怎么不能解决这个问题?我应该卸载吗?
  • 最后我重新安装了整个 Anaconda 并删除了旧目录......我虽然这是一个解决方案,但我仍然遇到同样的错误! Numpy 仍然没有被导入!如果有人知道如何更改 ipython 和 python s.t. 的路径。它们与很棒的 anaconda 环境“对齐”。我没有 root 权限,所以我无法更改“标题”(或者我不知道 #! 调用的行是什么?)以定位正确的文件,例如 here。请,如果有人可以帮助我解决这个问题!

标签: python jupyter


【解决方案1】:

该导入错误是由于 jupyter notebook 的环境变化造成的。您可能已经在一个环境中安装了这些软件包,而您正在另一个环境中运行 jupyter notebook。

  1. 我的 Anaconda 文件夹中有两个环境 (envs)。具体来说,我有 Anaconda3 文件夹)。

  2. (windows key+cmd) -> 以管理员身份打开windows命令提示符运行。

  3. Activate(环境名称)-> 例如:activate tensorflow-gpu

  4. 开始使用 conda install 安装包

注意:对于每个环境,您需要安装所有要使用的包,分别使用相同的过程。此解决方案适用于 windows 用户,但不确定是否适用于 linux 用户。

另外为了确保你的 conda 环境是最新的运行:

conda update conda
conda update anaconda

欲了解更多信息:https://pradyumnamajumder.wordpress.com/2017/09/30/solution-to-the-python-packages-import-error-in-jupyter/

【讨论】:

    【解决方案2】:

    我遵循here 中的想法并更改了启动root jupyter 命令的文件(参见cat /dir_where_installed/anaconda2/bin/jupyter 和jupyter-notebook(参见cat /dir_where_installed/anaconda2/bin/jupyter-notebook)。

    按预期在 anaconda 环境 conda info --envs 中设置(两个文件在第一行中都有 #! /dir_where_installed/anaconda2/bin/python 之类的内容),但出于某种原因,在我更新之后,甚至在再次安装所有内容之后(!), jupyter 没有走这条路,而是从“股票”python 导入(显然)。
    无论如何,我用#! 更改了这两行以采用which python 的输出中的路径。

    总结

    1. 检查cat /dir_where_installed/anaconda2/bin/jupytercat /dir_where_installed/anaconda2/bin/jupyter-notebook中的路径
    2. which python 输出应该类似于 /usr/bin/python
    3. 将两个文件中以#! 开头的行替换为#! /usr/bin/python
      我不确定这是否是个好主意,但它对我有用,现在我可以在 jupyter 中导入所有包。如果有人知道这是一个坏主意还是更好的解决方案,请告诉我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-28
      • 2014-03-31
      • 2023-01-28
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      相关资源
      最近更新 更多