iPyKernel 抛出“TypeError:对象 NoneType 不能在‘await’表达式中使用”

Ger*_*ero 6 python ipython async-await jupyter-notebook

我知道这个主题存在几个类似的问题,但据我所知,所有这些问题都async与用户(错误地)编写的代码有关,而就我而言,它来自 Python 包。

我有一个 Jupyter 笔记本,其第一个单元格是

! pip install numpy
! pip install pandas
Run Code Online (Sandbox Code Playgroud)

我想使用 Papermill 自动播放笔记本。在我的本地计算机(带有 Python 3.7 的 Windows 11)上没有问题:我安装了 iPyKernel 和 Papermill,一切都很好。

问题是当我尝试在 BitBucket 管道上执行相同操作时(Python 图像3-alpine,但它发生在不同的其他管道下);第一个单元格抛出以下错误:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 461, in dispatch_queue
    await self.process_one()
  File "/usr/local/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 450, in process_one
    await dispatch(*args)
TypeError: object NoneType can't be used in 'await' expression
Run Code Online (Sandbox Code Playgroud)

这使得脚本停止在第二个单元格,我在那里import numpy

如果它是相关的,我过去已经在 GitLab CI 下进行了“papermilled”,没有任何问题。

MrF*_*pes 2

似乎是一个错误ipykernel 6.9.0- 对我有用的选项:

  • 升级到6.9.1(截至2022年2月22日的最新版本);例如通过pip install ipykernel --upgrade
  • 降级到6.8.0(如果升级与您可能拥有的其他依赖项混淆);例如通过pip install ipykernel==6.8.0