当事情出错时该怎么办#
首先,看看下面列出的常见问题。如果你能从这些笔记中找出答案,这将比寻求帮助更快。
检查您是否有任何看起来相关的包的最新版本。不幸的是,找出哪些包是相关的并不总是容易的,但如果有一个已经修复的错误,很容易升级并继续做你想做的事情。
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。如果你有安全软件,试着暂时关闭它,并在设置中寻找更长期的解决方案。
在地址栏中,尝试在
localhost
和127.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
代码单元格内的语句生成ImportError
或ModuleNotFound
例外情况。当尝试执行单元时,没有发生任何事情,从而表现出一般的内核启动失败。
在这些情况下,请仔细查看您的环境结构,并确保笔记本代码所需的所有包都安装在正确的环境中。如果您需要在与笔记本服务器不同的环境中运行内核,请查看 [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
%ssecure_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内核代码(来自 IPython
和 ipykernel
)表演 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 内容进入问题,而不是提供一个屏幕截图。这使其他人能够选择这些内容的片段,这样他们就可以更有效地搜索并尝试提供帮助。
记住,帮助你不是任何人的工作。我们希望朱庇特为你工作,但我们不能总是单独帮助每个人。