正确的相对导入:“无法导入模块”

新手上路,请多包涵

我有一个结构如下的项目:

 .
└── myapp
    ├── app.py
    ├── models
    │   ├── hello.py
    │   └── world.py
    └── requirements.txt

我有两个模型, helloworld 。这两种模型都来自 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 许可协议

阅读 630
1 个回答

您收到的错误是由名为 pylint 的 python linter 报告的错误。所以这个问题并不是真正特定于 vscode 扩展。

有两种解决方案:

  1. 请尝试使用 vape PYTHONPATH=./myapp 在您的项目目录中添加一个 .env 文件,这将告诉 pylint 在哪里可以找到您的模块

  2. 或者直接在vscode中打开文件夹 myapp 而不是在vscode中打开父目录。

原文由 Don 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题