【发布时间】:2020-02-04 13:34:49
【问题描述】:
我在 jupyter 笔记本中编写我的模块并将它们存储在一个文件夹中,例如,/Users/me/myModules(注意:实际路径包含空格,这有关系吗?)
我想从位于不同位置的其他 jupyter 笔记本导入它们。由于模块具有 .ipynb 扩展名,因此我以 import import_ipynb 开始我的代码。
我关注this answer并添加了
export JUPYTER_PATH="${JUPYTER_PATH}:/Users/me/myModules"
到我的 bash_profile 文件的第一行,并保存。然后我在终端运行source ~/.bash_profile。
现在,当我在终端中运行 jupyter --paths 时,我可以在数据部分(而不是配置或运行时部分)下看到 myModules 文件夹的路径。
但是,在我的 jupyter 笔记本中
import import_ipynb
import myFirstModule
给出一个 ModuleNotFoundError: no module named 'myFirstModule'。我正在使用 Python 3.6.10 (Anaconda)。
如何从 jupyter 路径导入模块?
(其实我找到了解决方案,只需在每个笔记本的开头输入%cd '/Users/me/myModules',然后每个保存的文件(例如导出的图像)都会进入 myModules 文件夹,这是我不想)
【问题讨论】:
-
您是否也尝试将您的路径添加到
PYTHONPATH? IE。export PYTHONPATH="$PYTHONPATH:/Users/me/myModules" -
@TomaszBartkowiak 是的,我试过了,没用。我不知道它是否会有所帮助,但我的 bash 配置文件的第一行是 export PATH="/Users/me/anaconda3/bin:$PATH" (我没有写那行)
-
/Users/me/myModules中是否有__init__文件?which python是否指向适当的 anaconda 环境?您是否在笔记本中使用相同的环境? (笔记本里面!which python的输出是什么)?你的模块在import sys; sys.path的输出中吗? -
@TomaszBartkowiak 我在 myModules 文件夹中有一个名为 init.py(init 前后两个下划线)的空文件。 which python in terminal 和 !which python in notebook 提供相同的文件夹: /Users/me/anaconda3/bin/python 。导入系统; sys.path 包括 myModules 文件夹