我有一个这样的项目:
.
└── 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中避免此错误?
您收到的错误是一个名为
pylint
的python linter报告的错误。所以这个问题并不是针对vscode扩展的。有两种解决方案:
请尝试使用vape在项目目录中添加一个
.env
文件,这将告诉pylint在哪里可以找到模块或者直接在vscode中打开文件夹
myapp
,而不是在vscode中打开父目录。错误来自pylint。您需要将这一行添加到settings.json文件(VS Code)中:
由于hello.py和world.py位于同一文件夹(aka package)中,您应该按照如下方式导入world.py中的hello类:
如本文所述:What does a . in an import statement in Python mean?
这里的
.
表示从当前包导入。相关问题 更多 >
编程相关推荐