我有一个结构如下的项目:
.
└── myapp
├── app.py
├── models
│ ├── hello.py
│ └── world.py
└── requirements.txt
我有两个模型, hello
和 world
。这两种模型都来自 app.py
我在这里导入它们是这样的:
from models.hello import Hello
from models.world import World
但是 world
还需要使用 hello
。我在 world.py
试过这个:
from models.hello import Hello
当我运行应用程序时,上面的技术在技术上是有效的,但是 VSCode 的 Python 扩展给我以下错误:
E0401:Unable to import 'models.hello'.
从同一目录导入子模块的正确方法是什么?如何在 VSCode 中避免此错误?
原文由 Jimmy Sanchez 发布,翻译遵循 CC BY-SA 4.0 许可协议
您收到的错误是由名为
pylint
的 python linter 报告的错误。所以这个问题并不是真正特定于 vscode 扩展。有两种解决方案:
请尝试使用 vape
PYTHONPATH=./myapp
在您的项目目录中添加一个.env
文件,这将告诉 pylint 在哪里可以找到您的模块或者直接在vscode中打开文件夹
myapp
而不是在vscode中打开父目录。