我需要为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'
非常感谢您的帮助!