Jupyterhub не может добавить каталог модулей

Мне нужно добавить собственный каталог для Jupyterhub, чтобы пользователи могли импортировать модули Python, установленные с помощью pip.

У нас есть офлайн-сервер, на котором запущен Jupyterhub. Я загрузил новый образ докера на этот сервер (образ докера содержит новые пакеты python, установленные с помощью pip в Dockerfile на другом компьютере).

Я обнаружил, что у записной книжки Jupyter PYTHONPATH отличается от образа Docker. Проблема в том, что модули можно без проблем импортировать в Docker, но их нельзя найти в блокноте Jupyter.

Я обнаружил, что при открытии новой записной книжки и добавлении папки я обнаружил, что модули на самом деле находятся внутри первой ячейки:

import sys
sys.path.append('/opt/conda/lib/python3.7/site-packages')

работает нормально, и модули можно использовать без каких-либо проблем.

Я не хочу, чтобы пользователи добавляли путь каждый раз при создании новой записной книжки.

Я изменил файл конфигурации Jupyterhub и добавил в PYTHONPATH следующее:

:/opt/conda/lib/python3.7/site-packages/

Когда я перезапускаю службу Jupyterhub и открываю новую записную книжку Python3, возникает следующая ошибка ядра:

Traceback (most recent call last):
  File "/opt/conda/lib/python3.7/site-packages/tornado/web.py", line 1699, in _execute
    result = await result
  File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 742, in run
    yielded = self.gen.send(value)
  File "/opt/conda/lib/python3.7/site-packages/notebook/services/sessions/handlers.py", line 67, in post
    model = yield gen.maybe_future(sm.get_session(path=path))
  File "/opt/conda/lib/python3.7/site-packages/notebook/services/sessions/sessionmanager.py", line 170, in get_session
    return self.row_to_model(row)
  File "/opt/conda/lib/python3.7/site-packages/notebook/services/sessions/sessionmanager.py", line 209, in row_to_model
    raise KeyError
KeyError

Еще одна проблема появилась после добавления пути в записную книжку:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-26-31ba9e12ccc0> in <module>()
      1 import sys
----> 2 import bitarray

/opt/conda/lib/python3.7/site-packages/bitarray/__init__.py in <module>()
      9 Author: Ilan Schnell
     10 """
---> 11 from bitarray._bitarray import _bitarray, bitdiff, bits2bytes, _sysinfo
     12 
     13 __version__ = '0.9.0'

ModuleNotFoundError: No module named 'bitarray._bitarray'

Любая помощь приветствуется!


person Ondřej Doležal    schedule 06.09.2019    source источник


Ответы (1)


Возможно, вам потребуется создать профиль ipython для пользователя. См. Эту ССЫЛКА для получения дополнительной информации.

person Hazhir    schedule 20.04.2020