Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Windows and Python 3.8: IOPubThread, add_reader, NotImplementedError

オープン
#468 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
jupyter-notebook, python

調査の方向性

adaptive/tests/test_notebook_integration.py から始め、Windows 上で Python 3.8 を使って test_private_api_used_in_live_info を再現します。IOPubThread を ZMQStream を経由して Tornado の asyncio プラットフォームと ProactorEventLoop.add_reader の呼び出しまで追跡します。報告された環境でテストが NotImplementedError を発生させなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明

On Adaptive's CI we are executing the following

    ctx = zmq.Context()
    iopub_socket = ctx.socket(zmq.PUB)
    iopub_thread = ipykernel.iostream.IOPubThread(iopub_socket)

On 'vs2017-win2016' and 'windows-latest' at Python 3.8, I consistently get the following traceback:

2019-12-17T18:23:09.1315754Z ================================== FAILURES ===================================
2019-12-17T18:23:09.1320349Z _____________________ test_private_api_used_in_live_info ______________________
2019-12-17T18:23:09.1320805Z 
2019-12-17T18:23:09.1321185Z     @pytest.mark.skipif(
2019-12-17T18:23:09.1321672Z         not with_notebook_dependencies, reason="notebook dependencies are not installed"
2019-12-17T18:23:09.1322112Z     )
2019-12-17T18:23:09.1322491Z     def test_private_api_used_in_live_info():
2019-12-17T18:23:09.1322903Z         """We are catching all errors in
2019-12-17T18:23:09.1323407Z         adaptive.notebook_integration.should_update
2019-12-17T18:23:09.1323795Z         so if ipykernel changed its API it would happen unnoticed."""
2019-12-17T18:23:09.1324215Z         # XXX: find a potential better solution in
2019-12-17T18:23:09.1325254Z         # https://github.com/ipython/ipykernel/issues/365
2019-12-17T18:23:09.1325873Z         ctx = zmq.Context()
2019-12-17T18:23:09.1326384Z         iopub_socket = ctx.socket(zmq.PUB)
2019-12-17T18:23:09.1326913Z >       iopub_thread = ipykernel.iostream.IOPubThread(iopub_socket)
2019-12-17T18:23:09.1327444Z 
2019-12-17T18:23:09.1327922Z adaptive\tests\test_notebook_integration.py:23: 
2019-12-17T18:23:09.1328544Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2019-12-17T18:23:09.1329549Z .tox\py38-alldeps\lib\site-packages\ipykernel\iostream.py:71: in __init__
2019-12-17T18:23:09.1330309Z     self._setup_event_pipe()
2019-12-17T18:23:09.1330692Z .tox\py38-alldeps\lib\site-packages\ipykernel\iostream.py:90: in _setup_event_pipe
2019-12-17T18:23:09.1331234Z     self._event_puller = ZMQStream(pipe_in, self.io_loop)
2019-12-17T18:23:09.1331675Z .tox\py38-alldeps\lib\site-packages\zmq\eventloop\zmqstream.py:127: in __init__
2019-12-17T18:23:09.1332057Z     self._init_io_state()
2019-12-17T18:23:09.1332770Z .tox\py38-alldeps\lib\site-packages\zmq\eventloop\zmqstream.py:546: in _init_io_state
2019-12-17T18:23:09.1333540Z     self.io_loop.add_handler(self.socket, self._handle_events, self.io_loop.READ)
2019-12-17T18:23:09.1334063Z .tox\py38-alldeps\lib\site-packages\tornado\platform\asyncio.py:99: in add_handler
2019-12-17T18:23:09.1334344Z     self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)
2019-12-17T18:23:09.1335392Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2019-12-17T18:23:09.1335837Z 
2019-12-17T18:23:09.1336534Z self = <ProactorEventLoop running=False closed=False debug=False>, fd = 2676
2019-12-17T18:23:09.1337114Z callback = <bound method BaseAsyncIOLoop._handle_events of <zmq.eventloop.ioloop.ZMQIOLoop object at 0x000001C14F5552B0>>
2019-12-17T18:23:09.1337654Z args = (2676, 1)
2019-12-17T18:23:09.1338072Z 
2019-12-17T18:23:09.1338756Z     def add_reader(self, fd, callback, *args):
2019-12-17T18:23:09.1339186Z >       raise NotImplementedError
2019-12-17T18:23:09.1339745Z E       NotImplementedError

See this build.

I have no idea why this happens. Is this a bug? Or are some dependencies perhaps broken?

主要言語
Python
スター
734
フォーク
411
平均マージ
1日 2時間
マージ済み PR(30日)
9

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ipython/ipykernel のほかの issue

ipython/ipykernel の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。