[英]How to get code completion in a Jupyter notebook running in Docker
我遵循官方Tensorflow Docker hub上的说明,以便能够使用 GPU-ready docker 镜像和公开端口进行本地 Jupyter notebook 开发; 包括安装所需的nvidia-docker
我可以导入包没问题,但点击选项卡时代码完成不起作用。 例如:
import tensorflow as tf # works fine
tf. <tab> # nothing happens
如果我手动输入我可以使用代码。 我可以执行以下操作:
import numpy as np # no complaints
np.arange(0, 10) # returns expected result
有趣的是,如果我输入tf.
并点击shift-<double-tab>
我得到通常完整的文档字符串:
我使用以下命令拉取 docker 镜像并运行它:
docker run -u $(id -u):$(id -g) -it --runtime=nvidia --rm \
-v $(realpath ~/Documents/jupyter_notebooks):/tf/notebooks \
-p 8888:8888 tensorflow/tensorflow:nightly-gpu-py3-jupyter
除了将本地文件夹绑定到容器之外,这会将我的用户 ID 映射到正在运行的容器,因此我不是从root的主文件夹工作(我的 docker 安装属于root 。我可以在浏览器并像往常一样启动一个新的 Python3 笔记本。
我正在运行 Ubuntu 16.04,在 Chrome 中打开 Jupyter 笔记本(我使用vimium扩展程序,但它已关闭,并在确定它可能与发送到 Chrome 的键盘命令混淆后重新启动容器)。
$ docker --version
Docker version 18.09.1, build 4c52b90
吴文敏的tabnine插件绝对是比内置更好的自动补全服务。
我想指出的是,IPython 使用 Jedi 来进行自动补全和其他一些魔法。 然而,两人之间的兼容性时不时出现问题。 除了等待 IPython 更新之外,还有一个简单的修复方法:
%config IPCompleter.use_jedi=False
我为 jupyter notebook 编写了一个插件,它提供基于深度学习模型的代码自动完成。 它是 C/S 模型,可以在任何地方运行。 你可以试试这个: https : //github.com/wenmin-wu/jupyter-tabnine这个工具现在在pypi 上可用。 只需发出以下四行命令,并享受它:)
pip3 install jupyter-tabnine
jupyter nbextension install --py jupyter_tabnine
jupyter nbextension enable --py jupyter_tabnine
jupyter serverextension enable --py jupyter_tabnine
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.