【问题标题】:How to make Jupyter notebook use PYTHONPATH in system variables without hacking sys.path directly?如何让 Jupyter notebook 在系统变量中使用 PYTHONPATH 而不直接破解 sys.path?
【发布时间】:2017-05-15 17:48:21
【问题描述】:

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

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

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

【问题讨论】:

标签: python windows jupyter-notebook


【解决方案1】:

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 在shell 上运行。

【讨论】:

  • 这对我来说效果很好。虽然对于我的情况(在 OSX 上),conda 环境位于 /Users/ME/anaconda3/envs/MY_ENVIRONMENT/bin/jupyter-lab
【解决方案2】:

只需使用PYTHONPATH

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 文档没有给出如何在配置文件中添加它的示例。我无法让它工作。您能否举例说明如何在 jupyter_notebook_config.json 中添加它,默认情况下如下所示: { "NotebookApp": { "nbserver_extensions": { "ipyparallel.nbextension": true } }
    • 不确定如何从配置文件中执行此操作。我所要做的就是在 PYTHON_PATH 所在的位置创建一个新的系统环境变量。
    【解决方案4】:

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

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

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

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

    提示:确保您运行 source ~/.bash_profile 以实施更改并关闭并重新启动您的 jupyter notebook。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 2010-12-26
      • 2018-09-29
      • 2016-10-05
      • 2021-01-22
      • 2021-12-20
      • 2016-10-19
      相关资源
      最近更新 更多