【问题标题】:VSCode Unable to import 'example' pylint(import-error)VSCode 无法导入“示例”pylint(导入错误)
【发布时间】:2019-11-09 01:52:48
【问题描述】:

我在 VSCode 中收到 pylint 错误,提示他们无法导入本地文件。但是,我可以毫无问题地通过调试器运行文件。我认为 pylint 使用了与解释器相同的 PYTHONPATH,所以我不知道为什么会这样。

我的代码设置如下:

dir0
-dir1
--__init__.py
--src
---__init__.py
---srcdir1
----__init__.py
----file1.py
---srcdir2
----__init__.py
----file2.py

file1.py 看起来像这样:

def func1():
    return 1

file2.py 看起来像这样:

from srcdir1.file1 import func1
func1()

在 launch.json 我有:

"env": {"PYTHONPATH": "/full/path/to/dir0/dir1/src:/usr/local/bin/python"}

Pylint 给我一个关于“来自 srcdir1.file1”的导入错误。当我进入调试器并单击运行调试器时,文件运行没有问题。但是,如果我右键单击并选择运行代码,我会得到与 pylint 错误匹配的导入错误。

编辑: 我在工作区文件夹中创建了一个名为 .env 的文件。如下:

PYTHONPATH=/Library/Python/2.7/site-packages:/Users/user/path/dir0/dir1/src:/Users/user/path/client/src:/Users/user/path/product/src

有趣的是,我可以从产品(列表中的第三个)导入,但不能从客户端导入。是否有某个地方正在覆盖此环境?

我的文件中还有以下内容:

import os
import shutil
import sys

出于某种原因,import sys(而不是其他人)给了我以下错误:unresolved import 'sys'Python(unresolved-import)

【问题讨论】:

    标签: python visual-studio-code pylint


    【解决方案1】:

    这些文件夹中有__init__.py 文件吗?否则 python 不会将它们识别为模块并且将无法导入代码。查看https://stackoverflow.com/a/448279/5015356了解更多信息

    【讨论】:

    • 是的,所有文件夹中都有__init__.py文件。
    • Python 3.6 之后不再需要初始化文件。
    【解决方案2】:

    问题是您为调试器指定了PYTHONPATH,而不是发送到 Pylint 的一般扩展。尝试在.env environment variable definition file 中设置PYTHONPATH

    【讨论】:

    • 我试过了,但仍然出现错误。我编辑了我的帖子以包含更多信息。你能看一下吗?
    • 两件事。一,PYTHONPATH 中的 /Library/Python/2.7/site-packages 是多余的,因为 Python 会自动将其添加到 sys.path。第二,您关于client/ 的问题很难回答,因为您没有分享您尝试从中导入的另一个目录的任何详细信息,也没有提供布局详细信息等。
    猜你喜欢
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2020-05-26
    相关资源
    最近更新 更多