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

How to make Jupyter notebook use PYTHONPATH in system variables without hacking sys.path directly?

提问人:jf328 提问时间:5/16/2017 最后编辑:Communityjf328 更新时间:5/20/2020 访问量:46534

问:

与这个问题相同的问题 sys.path 在 Jupyter 和 Python 中不同 - 如何在 Jupyter 中导入自己的模块?在纯 Python 中,它将我的系统环境变量 PYTHONPATH 预置到 sys.path,但 Jupyter 笔记本没有,所以我无法导入自己的模块。

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

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

窗户 Jupyter-notebook

评论

0赞 Carl G 3/2/2020
这回答了你的问题吗?sys.path 在 Jupyter 和 Python 中不同 - 如何在 Jupyter 中导入自己的模块?

答:

3赞 jf328 10/19/2017 #1

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

评论

2赞 mattiasostmar 11/24/2017
文档没有给出如何在配置文件中添加它的示例。我无法让它工作。您能否举例说明如何在jupyter_notebook_config.json中添加它,默认如下所示: { “NotebookApp”: { “nbserver_extensions”: { “ipyparallel.nbextension”: true } }
0赞 jf328 11/24/2017
不知道如何从配置文件中执行此操作。我做的是在PYTHON_PATH所在的位置创建一个新的系统环境变量。
0赞 Shmalex 12/3/2022
URL 现在已损坏。
2赞 kev8484 8/24/2019 #2

--只是在这里插话,因为接受的答案没有给出完整的解决方案--

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

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

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

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

3赞 tardis 10/23/2019 #3

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

将其另存为 ,使其可执行,并在 shell 上运行。start_my_jupyterlabchmod a+x start_my_jupyterlabstart_my_jupyterlab

评论

0赞 Johann 9/30/2020
这对我来说效果很好。虽然就我的情况(在 OSX 上)而言,conda 环境处于/Users/ME/anaconda3/envs/MY_ENVIRONMENT/bin/jupyter-lab
11赞 Marc J. Schmidt 5/20/2020 #4

只需使用 .PYTHONPATH

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

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

评论

0赞 Shaun Han 11/8/2023
OP显然是在问如何在笔记本做到这一点。