如何让Jupyter笔记本在系统变量中使用PYTHONPATH而不直接攻击sys.path?

时间:2017-05-15 17:48:22

标签: python windows jupyter-notebook

与此问题sys.path different in Jupyter and Python - how to import own modules in Jupyter?中的问题相同。在纯Python中,它将我的系统环境变量PYTHONPATH预先添加到sys.path但Jupyter笔记本没有,所以我无法导入我自己的模块。

在SO上提出了许多类似的问题,解决方案是在脚本中直接操作sys.path。

有没有办法让Jupyter笔记本使用我的系统PYTHONPATH变量,就像在纯python中一样?

4 个答案:

答案 0 :(得分:2)

仅使用PYTHONPATH

export PYTHONPATH=/Users/user/my-other-library/
jupyter notebook

我刚刚使用最新的jupyterlab-2.1.2进行了测试,并且可以正常工作。

答案 1 :(得分:1)

Jupyter使用自己的JUPYTER_PATH环境变量。

答案 2 :(得分:0)

-因为接受的答案并没有给出完整的解决方案,所以请在这里报错-

您可以将模块的路径添加到JUPYTER_PATH环境变量,就像修改PYTHONPATH环境变量一样:

export JUPYTER_PATH="${JUPYTER_PATH}:/path/to/add/here/"

如果您使用的是Mac或其他Unix系统,则只需将上述行放入~/.bash_profile

提示:确保运行source ~/.bash_profile进行更改并关闭并重新启动jupyter笔记本。

答案 3 :(得分:0)

JupyterLab在Linux上重用了PYTHONPATH,所以我创建了一个文件

#!/bin/bash
# add your path
export PYTHONPATH="$PYTHONPATH:/opt/your/path"
# start JupyterLab using an environment
/opt/anaconda/envs/MY_ENVIRONMENT/bin/jupyter-lab

将其保存为start_my_jupyterlab,使其可以与chmod a+x start_my_jupyterlab执行,并使用start_my_jupyterlab在外壳上运行。