Как получить завершение кода в записной книжке Jupyter, работающей в Docker - PullRequest
0 голосов
/ 21 января 2019

Я следовал инструкциям на официальном Tensorflow Docker hub , чтобы иметь возможность использовать образ докера с поддержкой графического процессора с открытым портом для локальной разработки ноутбука Jupyter; включая установку необходимых 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>, я получу обычно полную строку документации:

enter image description here


Я использовал следующую команду, чтобы вытащить образ докера и запустить его:

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

Поверх привязки локальной папки к контейнеру это сопоставляет мой идентификатор пользователя с работающим контейнером, поэтому я не работаю с домашней папкой root (моя установка докера должна принадлежать root . Я могу открыть каталог ноутбука в браузере и запустить новый ноутбук Python3, как обычно.

Я использую Ubuntu 16.04, открываю записные книжки Jupyter в Chrome (я использую расширение vimium , но оно отключено, и я перезапустил контейнер после того, как выяснил, что он может работать с командами клавиатуры, отправленными в Chrome).

$  docker --version
Docker version 18.09.1, build 4c52b90

1 Ответ

0 голосов
/ 21 января 2019

Здесь я нашел быстрое и простое решение - просто запустите одну из магических команд Jupyter:

%config IPCompleter.greedy=True

Также работал в блокноте Jupyter, работающем в PyCharm.Как только я запустил эту команду, PyCharm начал индексировать проект, то есть завершение кода работало как в скриптах, так и в записной книжке (которая также не работала!)

Должна быть возможность добавить конфигурациюпараметр для глобального конфигурационного файла Jupyter.


В том же потоке существует второе возможное решение с использованием расширения для ноутбука, но я его не проверял.

...