我最近使用 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/