当事情出错时该怎么办#

首先,看看下面列出的常见问题。如果你能从这些笔记中找出答案,这将比寻求帮助更快。

检查您是否有任何看起来相关的包的最新版本。不幸的是,找出哪些包是相关的并不总是容易的,但如果有一个已经修复的错误,很容易升级并继续做你想做的事情。

Jupyter启动失败#

  • 拥有你 [installed it] (https://jupyter.org/install.html)?;-)

  • 如果您正在使用菜单快捷方式或Anaconda Launcher来启动它,请尝试打开终端或命令提示符并运行命令 jupyter notebook

  • 如果它找不到 jupyter ,您可能需要配置您的 PATH 环境变量。如果你不知道这是什么意思,也不想知道,只要(重新)用默认设置安装Anaconda,它应该会正确地设置路径。

  • 如果木星给出了它找不到的错误 notebook ,请与pip或conda核实 notebook 程序包已安装。

  • 试着跑步 jupyter-notebook (使用连字符)。这通常应与 jupyter notebook (带空格),但如果有什么不同的话,带连字符的版本就是“真正的”启动器,而另一个版本则包含了这一点。

Jupyter无法在浏览器中加载或无法工作#

  • 尝试使用其他浏览器(例如,如果您通常使用Firefox,请尝试使用Chrome)。这有助于找出问题所在。

  • 尝试禁用已安装的任何浏览器扩展和/或任何Jupyter扩展。

  • 一些网络安全软件可能会干扰Jupyter。如果你有安全软件,试着暂时关闭它,并在设置中寻找更长期的解决方案。

  • 在地址栏中,尝试在 localhost127.0.0.1 。它们应该是相同的,但在某些情况下会有所不同。

木星无法启动内核#

名为_core的文件 specs_ 告诉Jupyter如何开始不同种类的内核。要查看这些文件在系统中的位置,请运行 jupyter kernelspec list

$ jupyter kernelspec list
Available kernels:
  python3      /home/takluyver/.local/lib/python3.6/site-packages/ipykernel/resources
  bash         /home/takluyver/.local/share/jupyter/kernels/bash
  ir           /home/takluyver/.local/share/jupyter/kernels/ir

对于Python内核有一个特殊的退路:如果它没有找到真正的内核规范,但它可以将 ipykernel 包,它提供了一个内核,它将运行在与笔记本服务器相同的Python环境中。一条小路以 ipykernel/resources ,就像上面的例子一样,是这个默认的内核。默认设置通常会执行您想要的操作,因此如果 python3 Kernelspec指向其他地方,并且您无法启动一个Python内核,请尝试删除或重命名该kernelspec文件夹以显示默认设置。

如果您的问题出在另一个内核上,而不是我们维护的那个,那么您可能需要寻求有关该内核的支持。

Python环境#

多个Python环境,无论是基于Anaconda还是Python虚拟环境,通常都是报告问题的来源。在许多情况下,这些问题源于在一个环境中运行的笔记本服务器,而内核和/或其资源来自另一个环境。此情景的指标包括:

  • import 代码单元格内的语句生成 ImportErrorModuleNotFound 例外情况。

  • 当尝试执行单元时,没有发生任何事情,从而表现出一般的内核启动失败。

在这些情况下,请仔细查看您的环境结构,并确保笔记本代码所需的所有包都安装在正确的环境中。如果您需要在与笔记本服务器不同的环境中运行内核,请查看 [IPython's documentation] (https://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments)用于使用来自不同环境的内核,因为这是推荐的方法。水蟒的 [nb_conda_kernels] 在这些场景中,(https://github.com/Anaconda-Platform/nb_conda_kernels)包也可能是您的一种选择。

另一件需要检查的事情是 kernel.json 文件,该文件将位于前面提到的_core中 specs_ 通过运行以下命令标识的目录 jupyter kernelspec list 。该文件将包含一个 argv 节,包括启动内核时要运行的实际命令。通常,在重新安装Python环境时,以前的 kernel.json 将引用来自旧的或不存在的位置的可执行文件。因此,在遇到内核启动问题时,最好验证 argv 节以确保所有文件引用都存在并且是适当的。

Windows系统#

虽然Jupyter Notebook主要是在各种风格的Unix操作系统上开发的,但它也支持Microsoft Windows-这引入了它自己的一组常见问题,特别是在安全、进程管理和低级库领域。

Pywin32问题#

与Windows原语交互的主要程序包是 pywin32

  • 围绕创建内核的通信文件的问题利用 jupyter_core %s secure_write() 功能。此功能确保创建的文件只有该文件的所有者有权访问。如果库如 pywin32 如果没有正确安装,则在需要使用本机Windows库时可能会出现问题。

    以下是此类回溯的一部分:

    File "c:\users\jovyan\python\myenv.venv\lib\site-packages\jupyter_core\paths.py", line 424, in secure_write
    win32_restrict_file_to_user(fname)
    File "c:\users\jovyan\python\myenv.venv\lib\site-packages\jupyter_core\paths.py", line 359, in win32_restrict_file_to_user
    import win32api
    ImportError: DLL load failed: The specified module could not be found.
    
  • 如前所述,安装 pywin32 在Windows配置上可能会出现问题。发生此类问题时,您可能需要重新查看环境是如何设置的。请注意您运行的是32位还是64位版本的Windows,并确保为该环境安装了适当的程序包。

    以下是此类回溯的一部分:

    File "C:\Users\jovyan\AppData\Roaming\Python\Python37\site-packages\jupyter_core\paths.py", line 435, in secure_write
    win32_restrict_file_to_user(fname)
    File "C:\Users\jovyan\AppData\Roaming\Python\Python37\site-packages\jupyter_core\paths.py", line 361, in win32_restrict_file_to_user
    import win32api
    ImportError: DLL load failed: %1 is not a valid Win32 application
    

解决pywin32问题#

在这种情况下,您的 pywin32 模块可能未正确安装,应尝试执行以下操作:

pip install --upgrade pywin32

或者:

conda install --force-reinstall pywin32

然后是:

python.exe Scripts/pywin32_postinstall.py -install

哪里 Scripts 位于活动的Python的安装位置。

  • 另一个特定于Windows环境的常见故障是各种python命令的位置。在……上面 *nix 系统,这些通常驻留在 bin 活动的Python环境的目录。但是,在Windows上,它们往往驻留在 Scripts 文件夹-它是的兄弟文件夹 bin 。因此,当遇到内核启动问题时,请再次检查 argv 节并验证它是否指向有效的文件。你可能会发现它正指向 bin 什么时候 Scripts 是正确的,或者引用的文件不包括其 .exe 扩展-通常会导致 FileNotFoundError 例外情况。

这在一小时前就奏效了#

木星堆叠是非常复杂的,理所当然地,有很多事情正在发生。有时,你可能会发现系统工作得很好,然后,突然,你无法通过某个单元格,因为 import 失败。在这些情况下,最好问问自己,笔记本开发区域中是否添加了任何新的Python文件。

通过仔细分析笔记本错误或笔记本服务器的命令窗口中产生的回溯,这些问题通常是显而易见的。在这些情况下,您通常会找到Python内核代码(来自 IPythonipykernel )表演 its 从该跟踪中包含的笔记本开发错误中导入并注意一个文件,后跟一个 AttributeError

File "C:\Users\jovyan\anaconda3\lib\site-packages\ipykernel\connect.py", line 13, in
from IPython.core.profiledir import ProfileDir
File "C:\Users\jovyan\anaconda3\lib\site-packages\IPython_init.py", line 55, in
from .core.application import Application
...
File "C:\Users\jovyan\anaconda3\lib\site-packages\ipython_genutils\path.py", line 13, in
import random
File "C:\Users\jovyan\Desktop\Notebooks\random.py", line 4, in
rand_set = random.sample(english_words_lower_set, 12)
AttributeError: module 'random' has no attribute 'sample'

所发生的情况是,您命名的文件与内核软件使用的已安装程序包冲突,并且现在引入了阻止内核启动的冲突。

Resolution :您需要重命名您的文件。最佳做法是添加前缀或 namespace 您的文件,这样就不会与任何Python包冲突。

寻求帮助#

和任何问题一样,试着搜索一下,看看是否有人已经找到了答案。如果您找不到现有的答案,您可以在以下位置提问:

  • 这个 [Jupyter Discourse Forum] (https://discourse.jupyter.org/))

  • 这个 [jupyter-notebook tag on Stackoverflow] (https://stackoverflow.com/questions/tagged/jupyter-notebook)

  • 请仔细阅读 [jupyter/help repository on Github] (https://github.com/jupyter/help)(只读))

  • 或者在另一个存储库的问题中,如果明确是哪个组件负责的话。典型的存储库包括:

    • [jupyter_core] (https://github.com/jupyter/jupyter_core)- secure_write() 和文件路径问题

    • [jupyter_client] (https://github.com/jupyter/jupyter_core)-在笔记本服务器的命令窗口中发现的内核管理问题。

    • [IPython] (https://github.com/ipython/ipython)和 [ipykernel] (https://github.com/ipython/ipykernel)-通常在笔记本服务器的命令窗口和/或笔记本单元执行中发现内核运行时问题。

收集信息#

如果您发现您的问题需要在中打开问题 [notebook] (https://github.com/jupyter/notebook)请不要忘记提供如下详细信息:

  • 您看到了哪些错误消息(在笔记本中,更重要的是,在笔记本服务器的命令窗口中)?

  • 你站在哪个站台上?

  • 你是怎么安装Jupyter的?

  • 你已经试过什么了?

这个 jupyter troubleshoot 命令会收集有关您的安装的大量信息,这些信息也很有用。

在提供文本信息时,如果您可以 scrape 内容进入问题,而不是提供一个屏幕截图。这使其他人能够选择这些内容的片段,这样他们就可以更有效地搜索并尝试提供帮助。

记住,帮助你不是任何人的工作。我们希望朱庇特为你工作,但我们不能总是单独帮助每个人。