找不到从自己的目录导入的模块。如何解决?

Module import from own directory not found. How to fix it?

尝试 运行 我的代码时出现错误,但不知何故 vs 代码看不到路径错误。

错误:

ModuleNotFoundError: No module named 'get_formats'

我的代码结构是:

application
├── data_processor
│   ├── extract_movements.py
│   └── get_formats
│       └── get_formats.py
├── get_user_input
│   ├── get_bank_name.py
│   └── get_pdf_name.py
└── operate.py

错误发生在 extract_movements.py 中,我正在尝试使用以下方法导入位于 get_formats.py 中的函数:

from get_formats.get_formats import get_transaction_tags_format, get_transaction_dates_format

显示的完整错误是:

Traceback (most recent call last):
  File "/Users/username/Desktop/application/operate.py", line 6, in <module>
    from data_processor.extract_movements import extract_movements
  File "/Users/username/Desktop/application/data_processor/extract_movements.py", line 1, in <module>
    from get_formats.get_formats import get_transaction_tags_format, get_transaction_dates_format
ModuleNotFoundError: No module named 'get_formats'

我看到一些答案谈到应用程序目录或 data_processor 目录中的 __init__.py 文件,所以我尝试添加它但没有结果。也不知道什么是名为 __init__.py

的空文件

如果您在目录中创建 __init__.py 脚本,您将能够访问同级文件。

为什么您的 __init__.py 没有工作? - 你需要一个 __init__.py 在 get_formats 目录内而不是在外部,否则该目录将不会被视为一个模块。

然而,最简单的选择是使用 sys 模块,例如此处第二个答案中的 sys.path.append Importing files from different folder , or like this: How to import .py file from another directory?