Мне нужно добавить собственный каталог для 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'
Любая помощь приветствуется!