【发布时间】:2020-09-02 09:48:51
【问题描述】:
我有以下数据结构:
project/
folder_a/
file.py
folder_b/
useful_functions.py
我正在运行我的file.py 并尝试导入我在useful_functions.py 中编写的一组函数。
起初我尝试了以下方法:
from ..folder_b.useful_functions import function_a
但出现以下错误:
ValueError: attempted relative import beyond top-level package
然后我删除了最初有效的导入语句开头的两个点。从那以后,我重新审视了这个项目,没有任何变化,我面临着一条新的错误消息。以下代码:
from folder_b.useful_functions import function_a
给我以下错误信息:
ModuleNotFoundError: No module named 'folder_b'
我觉得很奇怪,有一次它可以工作,后来没有任何变化,导入失败。我真的很想用相对导入来解决这个问题,因为我希望代码可以在其他具有不同绝对文件路径的机器上工作。
提前致谢。
【问题讨论】:
-
您从哪个路径运行文件?
-
你是如何运行这个文件的?
-
我在 spyder 4 中运行该文件。通过将 cwd(在本例中为文件夹 a)附加到 sys 路径,我找到了以下帖子的解决方法。我很惊讶这是必要的,我相信一定有一个更简单的方法。 (stackoverflow.com/questions/8663076/…)
标签: python import python-import relative-path relative-import