问题总结
如果有个库或者其他依赖在 bash
的 python
和 ipython
中可以正常使用,但是在 jupyter(jupyter notebook, jupyterlab, jupyterhub)
中无法使用。那其问题是由于 jupyter 中的环境变量未与 bash 环境变量 同步导致的。具体问题和解决方案见 github jupyter/notebook issue1290: library path not work in notebook。
解决方案总结如下:
- jupyter 中执行 %env,会列出 jupyter 中的环境变量
- bash 中执行 printenv,会列出 bash下的环境变量
- 比较上面两组环境变量,记下 jupyter 中缺失的项以及值,编辑 jupyter 的配置文件,将缺失的环境变量以及值加入到配置文件里
jupyter 配置文件: .jupyter/jupyter_notebook_config.py
在配置文件前加:
import os
c = get_config()
os.environ['PATH_NAME'] = 'PATH_VALUE'
c.Spawner.env.update('PATH_NAME')