Python 如何在Docker中运行的Jupyter笔记本中完成代码

Python 如何在Docker中运行的Jupyter笔记本中完成代码,python,docker,tensorflow,jupyter-notebook,code-completion,Python,Docker,Tensorflow,Jupyter Notebook,Code Completion,我按照官方的指示,能够使用GPU就绪的docker映像和一个暴露的端口,用于本地Jupyter笔记本开发;包括安装所需的nvidia docker 我可以毫无问题地导入包,但当点击tab键时代码完成不起作用。例如: import tensorflow as tf # works fine tf. <tab> # nothing happens 有趣的是,如果我输入tf。然后按shift键-我得到通常完整的文档字符串: 我使用以下命

我按照官方的指示,能够使用GPU就绪的docker映像和一个暴露的端口,用于本地Jupyter笔记本开发;包括安装所需的nvidia docker

我可以毫无问题地导入包,但当点击tab键时代码完成不起作用。例如:

import tensorflow as tf       # works fine
tf. <tab>                     # nothing happens
有趣的是,如果我输入tf。然后按shift键-我得到通常完整的文档字符串:

我使用以下命令拉取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笔记本

我正在运行Ubuntu16.04,在Chrome上打开Jupyter笔记本,我使用vimium扩展,但是它被关闭了,我重新启动了容器,因为我发现它可能会干扰发送到Chrome的键盘命令

$  docker --version
Docker version 18.09.1, build 4c52b90
我遇到了一个快速而简单的Jupyter魔法命令:

%config IPCompleter.greedy=True
还曾在PyCharm内运行的Jupyter笔记本中工作。我一运行该命令,PyCharm就开始为项目编制索引,这意味着代码完成在脚本中以及在笔记本中都能正常工作,而笔记本也不能正常工作

应该可以将config参数添加到全局Jupyter配置文件中

在同一线程上还有第二种可能的解决方案,使用笔记本扩展,但我还没有对其进行测试。

我遇到了一个快速且-只需运行Jupyter magic命令之一:

%config IPCompleter.greedy=True
还曾在PyCharm内运行的Jupyter笔记本中工作。我一运行该命令,PyCharm就开始为项目编制索引,这意味着代码完成在脚本中以及在笔记本中都能正常工作,而笔记本也不能正常工作

应该可以将config参数添加到全局Jupyter配置文件中


在同一个线程上还有第二种可能的解决方案,使用笔记本扩展,但我还没有测试它。

我为jupyter notebook编写了一个插件,该插件基于深度学习模型提供代码自动完成。它是C/s模式,可以在任何地方运行。您可以尝试以下方法: 此工具现在在上可用。只需发出以下四行命令即可享受:

pip3 install jupyter-tabnine
jupyter nbextension install --py jupyter_tabnine
jupyter nbextension enable --py jupyter_tabnine
jupyter serverextension enable --py jupyter_tabnine

我为jupyter笔记本编写了一个插件,它提供了基于深度学习模型的代码自动完成功能。它是C/s模式,可以在任何地方运行。您可以尝试以下方法: 此工具现在在上可用。只需发出以下四行命令即可享受:

pip3 install jupyter-tabnine
jupyter nbextension install --py jupyter_tabnine
jupyter nbextension enable --py jupyter_tabnine
jupyter serverextension enable --py jupyter_tabnine

吴文民的tabnine插件绝对是比内置插件更好的自动完成服务

我想指出,伊皮顿用绝地武士来完成自动完成和其他一些魔法。然而,两人之间的兼容性时不时会出现问题。除了等待IPython更新之外,还有一个简单的解决方案:

%config IPCompleter.use_jedi=False

吴文民的tabnine插件绝对是比内置插件更好的自动完成服务

我想指出,伊皮顿用绝地武士来完成自动完成和其他一些魔法。然而,两人之间的兼容性时不时会出现问题。除了等待IPython更新之外,还有一个简单的解决方案:

%config IPCompleter.use_jedi=False

这是我尝试过的方法,但对我无效。我还在Ubuntu18.04上使用带有gpu的tensorflow docker:/这是我尝试过的,但它对我不起作用。我还在Ubuntu 18.04上使用带有gpu的tensorflow docker:/