如何在Jupyter Notebook中修复“套接字的协议错误类型”

时间:2019-04-28 14:53:32

标签: jupyter-notebook

我已经在Windows 7专业版64位处理器中用python 3.x安装了anaconda3。 在python 3内核中打开新的jupyter笔记本时。它显示错误消息为  “断言失败:套接字[10041] c:\ ci \ zeromq_1549025594292 \ work \ src \ ip.cpp:417的协议错误类型”

并且python停止运行。 请帮助解决该问题。

关于, Geetha S

期待新笔记本打开进行编码

3 个答案:

答案 0 :(得分:1)

最后使用2种替代方法解决了这一问题:

  1. 从2018年11月开始repo archive并下载anaconda3 5.3.1(这是python 3.7的最早版本)。通过匹配pythonjupyter等的版本,这解决了我的问题。[此外,如果您正在使用归档文件下载较旧的版本,则下面的链接告诉您运行python的版本那个特定版本的蟒蛇link]

  2. 一种解决方法是下载最新版本,并使用python 3.53.6创建新环境,如上所述。为此:

-在anaconda提示符下键入:

“ conda create -n py35 python = 3.5 anaconda”或

“ conda create -n py36 python = 3.6 anaconda”。

这需要一段时间,但最后会要求您输入类似的内容:

  

“ conda激活py36”以激活新环境。

要确保已激活,请输入:

“ conda信息--envs”。

在显示的环境列表中,活动环境以星号(*)突出显示。 那应该可行,但为了安全起见,请转到anaconda导航器,然后在左侧环境。左键单击"play button""open with jupyter notebook"

答案 1 :(得分:0)

我认为我的答案可能会晚一点 此错误来自PC上安装的python版本比jupyter笔记本电脑内的版本更旧 要解决此问题,您可以通过conda命令降级您的版本,或者 创造一个新的环境:
conda创建-n py35 python = 3.5 anaconda
记得更改您自己的版本

答案 2 :(得分:0)

我也遇到了同样的问题(在Windows 7上也是如此),并设法使其工作。由于这里的答案似乎不太明确,我想我会记录下我采取的步骤。

从本质上讲,我没有弄清楚出什么问题了,但是我只是尝试了不同的版本,直到它起作用为止。我的基准miniconda3是64位的,尽管我认为这并不重要,因为我创建了第二个非基础环境来运行。无论如何,我的miniconda3安装程序是

Miniconda3-latest-Windows-x86_64.exe 2020-03-11 10:38:26    20d6bd9b3bd62f1fd874315b6b38c159

另外,其他答案是安装anaconda,这需要很长时间和大量磁盘空间。我只是使用了miniconda,它体积更小,安装速度更快,并且您可以根据需要下载相同的软件包。

我的步骤是

  1. 创建新的python 3.6环境
  2. 在新环境中安装jupyter
  3. 在环境中降级zeromq的版本。
  4. 我还安装了numpy,这是我正在使用的笔记本电脑所需要的。

这是我使用的命令:

conda create --name python36 python=3.6
conda activate python36
conda install zeromq=4.2.2
conda install numpy

这是我最终得到的软件包版本(我忽略了一些我认为不重要的软​​件包):

ipykernel                 5.1.4            py36h39e3cac_0
ipython                   7.13.0           py36h5ca1d4c_0
ipython_genutils          0.2.0                    py36_0
ipywidgets                7.5.1                      py_0
jupyter                   1.0.0                    py36_7
jupyter_client            6.1.3                      py_0
jupyter_console           6.1.0                      py_0
jupyter_core              4.6.3                    py36_0
libsodium                 1.0.16               h9d3ae62_0
matplotlib                3.1.3                    py36_0
matplotlib-base           3.1.3            py36h64f37c6_0
mkl                       2020.1                      216
mkl-service               2.3.0            py36hb782905_0
mkl_fft                   1.0.15           py36h14836fe_0
mkl_random                1.1.1            py36h47e9c7a_0
msys2-conda-epoch         20160418                      1
notebook                  6.0.3                    py36_0
numpy                     1.18.1           py36h93ca92e_0
numpy-base                1.18.1           py36hc3f5095_1
prompt-toolkit            3.0.5                      py_0
prompt_toolkit            3.0.5                         0
python                    3.6.10               h9f7ef89_2
python-dateutil           2.8.1                      py_0
pywin32                   227              py36he774522_1
pywinpty                  0.5.7                    py36_0
pyzmq                     17.0.0           py36hfa6e2cd_0
qt                        5.9.7            vc14h73c81de_0
sqlite                    3.31.1               h2a8f88b_1
terminado                 0.8.3                    py36_0
testpath                  0.4.4                      py_0
tornado                   6.0.4            py36he774522_1
winpty                    0.4.3                         4
zeromq                    4.2.2                h7a7be3a_2

要启动jupyter,我创建了一个.bat文件:

set conda_root=C:\Users\username\miniconda3
set work_root=D:\projects\EdX

d:
cd %work_root%

call %conda_root%\Scripts\activate.bat python36

call jupyter notebook

echo Jupyter server stopped

pause

(我的.ipynb文件位于work_root文件夹中。)

可以使用pause命令保持cmd.exe窗口打开,以便您可以在其中读取任何消息或错误的jupyter日志,但是每次停止服务器时都必须手动关闭该窗口。

我在Anaconda Prompt cmd.exe窗口中确实收到了弃用警告:

C:\Users\username\miniconda3\envs\python36\lib\site-packages\notebook\services\kernels\kernelmanager.py:19: 
    VisibleDeprecationWarning: zmq.eventloop.minitornado is deprecated in pyzmq 14.0 and will be removed.
    Install tornado itself to use zmq with the tornado IOLoop.

但是现在我不在乎。