使用VSCode

时间:2019-04-12 02:59:47

标签: python python-3.x visual-studio-code python-import pylint

我正在使用python 3.7.3在VSCode中构建代码。

文件夹结构:

project 
├── main.py
└── modules
    ├── __init__.py
    ├── foo.py
    └── boo.py

在foo.py中:

import boo
boo.printBoo()

当我运行foo.py时,它可以工作。我可以得到预期的结果。

This is boo

但是VSCode弹出:

  

无法导入'boo'pylint(导入错误)

尽管代码有效,但有没有办法摆脱pylint(import-error)


我试图将import语句更改为

from ..modules import boo as Boo
  

错误:在没有已知父包的情况下尝试相对导入

import modules.boo as Boo
  

错误:没有名为“模块”的模块

是什么问题,是pylint的问题,还是我误用了导入?

2 个答案:

答案 0 :(得分:6)

遇到了完全相同的问题,两个文件共存于同一子文件夹中,执行得很好,但在VSCode中得到了pylint(import-error)

对我来说,解决方案是在<projectroot>/.vscode/settings.json中添加了以下文本:

{
    "python.linting.pylintArgs": [
        "--init-hook",
        "import sys; sys.path.insert(0, './modules')"
    ]
}

除了项目根文件夹

,其中将相关的“模块”子文件夹添加到 pylint 所要查找的路径中。

答案 1 :(得分:2)

在Python 3中import boofoo开始工作的唯一方法是直接运行foo.py。如果是这种情况,则需要让VS Code打开modules目录,而不要打开project

如果要打开project,则将导入更改为from . import boo,然后可以执行python3 -m modules.foo