【发布时间】:2021-09-23 08:12:16
【问题描述】:
我有一个如下目录:
my_dir
|__data_reader
| |__reader.py
| |__ __init__.py
|
|__folder1
| |__folder2
| |__ analyzer.py
| |__ __init__.py
我想在analyzer.py 中从reader.py 导入一个模块。我试过了:
from data_reader.reader import my_module
得到了这个错误:
ModuleNotFoundError: 没有名为“data_reader”的模块
注意:我不能使用:from my_dir.data_reader.reader import my_module,而名称 my_Dir 可能会改变,我想以一种干净的方式来解决这些问题。
试过了:
from ..data_reader.reader import my_module
或
from ...data_reader.reader import my_module
并得到以下错误:
ImportError:尝试在没有已知父包的情况下进行相对导入,尽管我在两个目录中都有 init.py。
我也尝试使用以下方法加入目录:
REPO_ROOT_DIRECTORY = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
DATA_READER_DIRECTORY = os.path.join(REPO_ROOT_DIRECTORY, "data_reader")
但仍无法识别导入 DATA_READER_DIRECTORY
更新:
我意识到一些有趣的事情,当我尝试在 pycharm 中运行这段代码时,第一个代码运行良好,所有相关导入也很好。但是,当我在 pycharm 终端或我的终端中尝试它时,它会发送错误。如果有人能解释为什么这些错误发生在终端而不是 pycharm 运行中,我将不胜感激。
【问题讨论】:
-
这个链接可能对stackoverflow.com/questions/1260792/…有帮助
标签: python import directory python-import