我在此文件夹的Mac OS上使用python3.6创建了venv/Users/kim/Documents/Apps/PythonApps/python36-miros-a3
激活虚拟环境后,我运行了pip install pylint
我的工作区在/Users/kim/Documents/Apps/WebApps/miros-a3

在我的vscode工作区中,我具有以下工作区设置

{
    "folders": [
        {
            "path": "."
        }
    ],
    "settings": {
        "python.pythonPath": "/Users/kim/Documents/Apps/PythonApps/python36-miros-a3/bin/python3.6",
        "python.venvPath": "/Users/kim/Documents/Apps/PythonApps"
    }
}

我尝试过为pylint设置自定义路径,也更改了venvpath。

皮林特一直抱怨进口声明说它不存在。

python-3.x - pylint假阳性E0401在使用venv时在vscode中导入错误-LMLPHP

python-3.x - pylint假阳性E0401在使用venv时在vscode中导入错误-LMLPHP

如您所见,它们位于同一文件夹中,并且我绝对可以执行python文件。

我应该怎么做才能避免这种假阳性导入错误?

我也尝试了以下方法:
  • 转到命令行,打开虚拟环境,然后按此处推荐的方式键入code激活vscode https://code.visualstudio.com/docs/setup/mac
  • 也尝试了这个https://donjayamanne.github.io/pythonVSCodeDocs/docs/troubleshooting_linting/
  • 最佳答案

    皮林特有些古怪。在这种情况下,它不知道在哪里找到模块,因为它位于venv路径的子目录中。要解决这个问题:

  • 将此设置放入工作区或文件夹设置中:
    "python.linting.pylintArgs": [
        "--init-hook",
        "import sys; sys.path.append('<path to folder your module is in>')"
    ]
    

    或者,也许更好
  • 生成.pylintrc文件。从带有venv激活运行的集成终端:
    pylint --generate-rcfile > .pylintrc
    

    然后打开生成的文件,并取消注释 init-hook = 部分为:
    init-hook='import sys; sys.path.append("<path to folder you module is in>")'
    

    如果需要,请阅读.pylintrc并进行调整设置。在两种情况下,路径都应指向“数据库”文件夹。
  • 在了解了pylint设置之后,以正确的方式进行操作:
    from database.database_dispatcher import ...
    

    参见Anthony Sottile的this answer
  • 关于python-3.x - pylint假阳性E0401在使用venv时在vscode中导入错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51095449/

    10-12 17:02