python - 带有 docker : __init__() got an unexpected keyword argument 'column' 的 Jupyter

标签 python docker jupyter-notebook tensorflow2.0

我最近使用 docker 安装了支持 GPU 的 TensorFlow:

docker pull tensorflow/tensorflow:latest-gpu-jupyter
但有时当我使用以下命令启动 jupyter notebook 服务器时:
docker run --gpus all -it -p 8888:8888 tensorflow/tensorflow:latest-gpu-jupyter jupyter notebook --notebook-dir=/tf --ip 0.0.0.0 --allow-root --NotebookApp.allow_origin='https://colab.research.google.com'
我在终端上看到以下异常:
[IPKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/ipykernel/kernelbase.py", line 272, in dispatch_shell
    yield gen.maybe_future(handler(stream, idents, msg))
  File "/usr/local/lib/python3.6/dist-packages/tornado/gen.py", line 762, in run
    value = future.result()
  File "/usr/local/lib/python3.6/dist-packages/tornado/gen.py", line 234, in wrapper
    yielded = ctx_run(next, result)
  File "/usr/local/lib/python3.6/dist-packages/tornado/gen.py", line 162, in _fake_ctx_run
    return f(*args, **kw)
  File "/usr/local/lib/python3.6/dist-packages/ipykernel/kernelbase.py", line 580, in complete_request
    matches = yield gen.maybe_future(self.do_complete(code, cursor_pos))
  File "/usr/local/lib/python3.6/dist-packages/ipykernel/ipkernel.py", line 348, in do_complete
    return self._experimental_do_complete(code, cursor_pos)
  File "/usr/local/lib/python3.6/dist-packages/ipykernel/ipkernel.py", line 373, in _experimental_do_complete
    completions = list(_rectify_completions(code, raw_completions))
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 484, in rectify_completions
    completions = list(completions)
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 1818, in completions
    for c in self._completions(text, offset, _timeout=self.jedi_compute_type_timeout/1000):
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 1862, in _completions
    full_text=full_text, cursor_line=cursor_line, cursor_pos=cursor_column)
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 2030, in _complete
    cursor_pos, cursor_line, full_text)
  File "/usr/local/lib/python3.6/dist-packages/IPython/core/completer.py", line 1374, in _jedi_matches
    text[:offset], namespaces, column=cursor_column, line=cursor_line + 1)
  File "/usr/local/lib/python3.6/dist-packages/jedi/api/__init__.py", line 726, in __init__
    project=Project(Path.cwd()), **kwds)
TypeError: __init__() got an unexpected keyword argument 'column'
之后,我必须重新启动服务器或从 google colab 重新连接。
错误可能来自哪里以及如何修复它的任何想法?

最佳答案

这个好像是jedi和ipython不兼容,见this issue .
修复方法是将 jedi 固定到 0.17.2,所以要么运行:

pip install jedi==0.17.2
或者,如果您使用的是诗歌,请将其添加到您的 pyproject.toml 中:
jedi = "<=0.17.2"
但是由于您使用的是 docker 镜像,因此需要更新该镜像。好像是gpu-jupyter.Dockerfile .
我会在那个项目上提出一个问题,看看他们是否可以固定 jedi就像他们对 nbformat 所做的那样,或者你可以 fork 它。他们也应该升级 python,3.6 有点长了。

关于python - 带有 docker : __init__() got an unexpected keyword argument 'column' 的 Jupyter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66141235/

相关文章:

json - Dockerrun.aws.json 版本无效,中止部署

python - pandas 按日期分组,为列分配值

python - 如何在 Azure 机器学习工作室中安装额外的 python 包?

python - 在python(tkinter)中播放声音时执行按键事件

python - 结构模式匹配默认情况下如何访问匹配值?

python - 使用 pybind11,如何将我的代码拆分为多个模块/文件?

docker - ssh-keygen : command not found in Docker

docker - 如何运行内部运行docker的docker容器?

python - 将原始 Ipython Notebook txt 转换为 Ipynb

python - 在Windows上运行Flask不会执行flask run命令