Python:如何从父目录导入模块



我知道已经有很多类似的问题了,但是没有一个答案真的适合我,所以请先阅读我的问题(并告诉我我在其他解决方案中哪里出错了),然后再将其标记为重复。

我的项目结构是这样的:

Project/
|-- src/
|-- project/
|-- a.py
|-- b.py
|-- tests/
|--c.py

我不太了解如何构建python项目/包等如何准确工作。我想在我的c模块中导入a

我尝试了

from project.a import xyz
from ..a import xyz

我还将__init__.py文件添加到projecttests目录。

但是我总是得到ModuleNotFoundError: No module named 'project'

然后我尝试在导入a之前将project路径添加到sys.path,但仍然得到相同的错误信息。

我做错了什么?

添加__init__.py,并使用sys.path添加项目路径,并导入a应该可以工作。但我建议在您的c.py中尝试以下操作:

import sys
from pathlib import Path
filepath = Path(__file__)
filepath = filepath.parent
sys.path.insert(0, str(filepath))
import a

为什么?这是一个通用的解决方案,只要从ca的相对路径保持不变,就可以工作。

相关内容

  • 没有找到相关文章

最新更新