我在Windows上的Wing IDE内部运行PyLint。我有一个子目录(包)在我的项目和包内,我从顶层导入一个模块,即。

__init__.py
myapp.py
one.py
subdir\
    __init__.py
    two.py

在two.py中,我导入了一个,这在运行时工作得很好,因为顶层目录(myapp.py从其中运行)在Python路径中。然而,当我在two.py上运行PyLint时,它会给我一个错误:

F0401: Unable to import 'one'

我怎么解决这个问题?


当前回答

我找到了一个很好的答案。编辑pylintrc并在master中添加以下内容

init-hook="import imp, os; from pylint.config import find_pylintrc; imp.load_source('import_hook', os.path.join(os.path.dirname(find_pylintrc()), 'import_hook.py'))"

其他回答

如果有人正在寻找一种在PyCharm中运行pylint作为外部工具的方法,并让它在他们的虚拟环境中工作(为什么我想到这个问题),下面是我如何解决它:

在PyCharm > Preferences > Tools > External Tools中,为pylint添加或编辑一个项目。 在“编辑工具”对话框的“工具设置”中,将“程序”设置为使用python解释器目录中的pylint: $PyInterpreterDirectory$/pylint 在parameters字段中设置其他参数,例如:——rcfile=$ProjectFileDir$/pylintrc -r n $FileDir$ 将工作目录设置为$FileDir$

现在使用pylint作为外部工具将在您使用公共配置文件选择的任何目录上运行pylint,并使用为您的项目配置的任何解释器(假设是您的virtualenv解释器)。

创建.pylintrc并添加

[MASTER]
init-hook="from pylint.config import find_pylintrc;
import os, sys; sys.path.append(os.path.dirname(find_pylintrc()))"

安装Python时,可以设置路径。如果path已经定义了,那么你可以在VS Code中,按Ctrl+Shift+P,输入Python:选择解释器,然后选择Python的更新版本。点击此链接获取更多信息,https://code.visualstudio.com/docs/python/environments

首先,进入VS Code,然后按“ctrl + shift + p”

然后搜索settings.json

然后将下面的代码粘贴到设置中。我希望问题能够解决。

{

"python.pythonPath": "venv/bin/python",
"python.linting.pylintPath": "venv/bin/pylint"

}

也许通过手动在PYTHONPATH中追加目录?

sys.path.append(dirname)