5

假设我有以下结构:

 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

我检查了一堆类似的帖子,但还没有弄清楚……我正在从 a 运行 jupyter notebook,conda env而我的 python 版本是3.7.6.

4

3 回答 3

3

在你的笔记本上做:

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
于 2020-04-07T11:52:36.730 回答
1

jupyter notebook 从 sys.path 中的当前工作目录开始。见sys.path

...包含用于调用 Python 解释器的脚本的目录。

如果您的实用程序函数位于父目录中,您可以执行以下操作:

import os, sys
parent_dir = os.path.abspath('..')
# the parent_dir could already be there if the kernel was not restarted,
# and we run this cell again
if parent_dir not in sys.path:
    sys.path.append(parent_dir)
from functions import some_function
于 2021-08-29T08:44:58.987 回答
0

您可以使用sys.path.append('/path/to/application/app/folder')然后尝试导入

于 2020-04-06T11:40:26.563 回答