Jupyterhub无法添加模块目录

时间:2019-09-06 13:13:39

标签: python module kernel jupyterhub

我需要为Jupyterhub添加自定义目录,以便用户可以导入使用pip安装的python模块。

我们有一个运行Jupyterhub的脱机服务器。我将新的Docker映像加载到该服务器上(Docker映像包含使用pip在另一台机器上的Dockerfile中安装的新python软件包)。

我发现,Jupyter笔记本具有与Docker映像不同的PYTHONPATH。 问题在于,可以在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'

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可能需要为用户创建一个ipython配置文件。有关更多信息,请参阅此LINK