Jupyter笔记本中的Python相对导入

Jupyter笔记本中的Python相对导入,python,jupyter-notebook,anaconda,relative-import,Python,Jupyter Notebook,Anaconda,Relative Import,假设我有以下结构: dir_1 ├── functions.py └── dir_2 └── code.ipynb 在,code.ipynb中,我只想访问functions.py中的函数,并尝试了以下操作: from ..functions import some_function 我得到一个错误: attempted relative import with no known parent package 我检查了一堆类似的帖子,但还没有找到答案。。。我正在从conda

假设我有以下结构:

 dir_1
 ├── functions.py
 └── dir_2
     └── code.ipynb
在,
code.ipynb
中,我只想访问
functions.py
中的函数,并尝试了以下操作:

from ..functions import some_function
我得到一个错误:

attempted relative import with no known parent package

我检查了一堆类似的帖子,但还没有找到答案。。。我正在从
conda env
运行jupyter笔记本,我的python版本是
3.7.6

您可以使用
sys.path.append('/path/to/application/app/folder')
,然后尝试在笔记本中导入

import os, sys
dir2 = os.path.abspath('')
dir1 = os.path.dirname(dir2)
if not dir1 in sys.path: sys.path.append(dir1)
from functions import some_function

谢谢不过,我确实希望避免声明显式路径。这是没有办法的吗?为什么我会出现上述错误?看一看,我相信问题是由于您的相对导入。你可能想试试python3-mdir_2/code.py之类的东西,我不太明白。我正在运行一个jupyter笔记本,关键是我想使用相对路径,避免显式路径。要能够使用相对路径,您应该在包中工作。”换句话说,解析模块的算法基于name和package变量的值。在您的情况下,您没有包,因此package是none。您需要具有init.py才能使目录成为一个包。这里详细介绍了两种不同的解决方案:笔记本相对于其他文件位于何处?在本例中,笔记本应该是
code.py
。我会更新这个问题。