【发布时间】:2018-10-17 14:44:20
【问题描述】:
我正在使用 VS Code 编写 python,但我遇到了关于 pylint 的问题。
我有一个基本的文件结构
.env
-src
__init__.py
-module1
__init__.py
-file1.py
-file2.py
-module2
__init__.py
-file.py
main.py
如果我像这样在main.py 中导入some_method:from module1.file1 import some_method 代码按预期运行,但pylint 不满意并说Unable to import module1.file1。
如果我像这样导入它: from src.module1.file1 import some_module pylint 然后满足但它破坏了我的代码(这不是它应该根据我的文件结构导入的方式),返回一个错误说“没有名为'src'的模块“这是我所期望的。
我尝试在 vs 代码中搜索特定于 pylint 的解决方案,但没有一个有效。我不断得到答案或“解决方案”,说这与执行 pylint 的路径有关。
我在与我的 'src' 文件夹相同的文件夹级别中运行一个 virtualenv,pylint 使用 python3.6 安装在该 virtualenv 中。这是设置中的路径问题还是我忽略了一些明显的东西?
【问题讨论】:
-
pylint的工作目录是什么?缺少任何__init__.py文件,从技术上讲,您没有任何明确的包。但是,我认为来自main.py的导入,因为它位于src,所以将同一目录中的任何目录视为包。pylint似乎使用包含src的任何目录作为“隐式”包。 -
我在每个目录中都有
__init__.py文件(我的问题中没有包含它。) -
src/中有没有?这(结合python和pylint可能被视为隐式包的差异)可以解释它。 -
是的。在我的问题中,前一种导入方式的问题不在于代码无法运行,它只会使 pylint 吐出错误,但在后一种情况下,我的代码会中断但满足 pylint。不知道这是否有帮助,但我的 virtualenv 文件夹和 /src 文件夹在我的目录树中位于同一级别
-
在
src中包含__init__.py文件可能不正确。更可能的实际问题是您正在尝试运行pylint src,而您想要的是运行pylint从src目录。
标签: python python-3.x visual-studio-code vscode-settings