如何 运行 Pylint 与 PyCharm

How to run Pylint with PyCharm

我想将 Pylint 配置为我正在处理的 Python 项目的整个项目目录中的外部工具。我曾尝试将存储库用作带 __init__.py 和不带 __init__.py 的模块,但无论哪种方式都无法正常工作。

我很难将 Pylint 设置为 运行 和 PyCharm。我知道我应该 运行 将其作为外部工具使用,但设置让我感到困惑。

他们文档的权威来源已损坏,所以我也无法检查。

首先用pip安装Pylint:

pip install pylint

您必须打开“设置工具外部工具“然后按PyCharm.

处的“+”按钮

这里 an example 设置良好。

您可以按照以下步骤将 Pylint 设置为与 PyCharm 一起工作:

  1. 安装pylint:

     $ pip install pylint
    
  2. 找到您的 pylint 安装文件夹:

     $ which pylint         # MacOS/Linux
     /usr/local/bin/pylint  # This is just a possible output - check yours
    
    <!-->
    
     $ where pylint         # Windows
     %LocalAppData%\Programs\Python\Python36-32\Scripts\pylint.exe  # Possible location
    
  3. 用菜单文件打开PyCharm设置window→设置,然后导航至边栏中的菜单 工具外部工具。 (或搜索“外部工具”)

  4. 通过单击 + 符号并相应地填写字段来设置外部工具。在 Program 中使用您在 运行 which pylint 时获得的路径。对于其他值,您可以使用图像中的相同值。

  5. 运行 pylint 从菜单 工具外部工具pylint:

  6. 看看你在PyCharm终端的输出

详情请参考Pylinting with PyCharm

如果您想使用 Pylint 检查您的整个项目或特定文件或目录,您可以右键单击您的项目根目录、文件或目录,然后激活 外部工具pylint 如下图。

我现在使用并推荐 ,这在我第一次写这个答案时并不存在。**


一位同事在 GitHub 上向我指出了 pylint-pycharm。它是 Pylint 的包装器,输出格式为 PyCharm.

我是这样设置的:

git clone https://github.com/perses76/pylint-pycharm.git
cd pylint-pycharm
python setup.py build

这将创建 build/scripts-2.7/pylint-pycharm

然后,在 PyCharm 中,使用以下设置创建一个新的 外部工具

Program: path to your installation of pylint-pycharm
Arguments: --virtualenv=$PyInterpreterDirectory$/.. $FileName$
Working directory: $FileDir$
Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*

现在 运行 从菜单工具* → 外部工具PyLintPyCharm。每行输出都将超链接到源代码中的相关位置。

对之前答案的注释。 我正在寻找一种使 PyCharm 了解输出语法的方法,以便我可以直接跳转到文件位置。无需使用其他工具即可工作。

Pylint 可以配置为使用 pylintrc 文件中的 msg-template 选项或 CLI 选项 --msg-template.

以特定格式输出消息

我将其设置为: msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'

在外部工具设置中,Output filters:可以设置为 $FILE_PATH$:$LINE$:$COLUMN$: .* 所以 PyCharm 显示直接跳转到报告位置的链接。 这可以与 output-format=colorized 结合使用,所以我得到了: PyCharm 尽管已配置,但仍无法识别该列。但是有文件和行对我来说就足够了。

因为我没有找到可用的现成设置,所以这些是我在 macOS 上的 PyCharm CE 2018.1 中使用的设置:

1 - pip install pylint 在你的项目 virtualenv 中或全局

2 - 添加新的外部工具并配置:

Program: pylint
Arguments: "--msg-template='{abspath}:{line:5d},{column:2d}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$:\s*$LINE$\,\s*$COLUMN$:

注意消息模板所需的双引号和输出过滤器的转义字符。输出过滤器允许单击文件路径并在 IDE 源代码编辑器中打开该位置。

唯一缺少的功能是将 lint 描述直接绘制到源视图中的输出过滤器,就像内置 linter 所做的那样。不过目前还没有这样的功能。

你可以试试这个Pylint PyCharm plugin:

它使用 Pylint 从 PyCharm/IntelliJ IDEA.

中提供对 Python 文件的实时和按需扫描

安装后,实时检查会自动运行。 对于点播,您有几个选项,从只检查当前打开的文件到扫描整个项目:

(为了透明起见,我是开发者。)

多亏了这里的信息,以及来自 PyCharm 的更新文档,我已经能够让它很好地工作,也可以为项目使用虚拟环境(确保任何包都可以部署在虚拟环境,不需要全局部署)。

采取 的内容,但稍作修改:

  1. 确保在虚拟环境中安装 Pylint。请注意,确保在创建虚拟环境时没有 select“继承全局站点包”。如果你这样做,那么 Pylint 最终将成为全球性的,这将不起作用。

  2. 添加新的外部工具并配置。与 lkraider 提供的相比,这略有不同。一方面,我希望它看起来更像正常的 Pylint 输出,因此我的消息模板(和输出过滤器)有点不同。每个人都有自己的。 第二个变化是基于虚拟环境执行 Pylint 的更关键的变化。那是我使用 $PyInterpreterDirectory$ 的程序参数。

    Program: $PyInterpreterDirectory$/pylint
    Arguments: "--msg-template='{abspath}:{line:5d}:{column}: {msg_id}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
    Working directory: $ProjectFileDir$
    Output filters: $FILE_PATH$:\s*$LINE$\:\s*$COLUMN$:
    

External tool for Pylint

Roberto Leinardi 为 PyCharm 创建了一个 Pylint 插件,它确实有效并很好地集成到 IDE:

易于从存储库安装,完整说明如下:

pylint-pycharm

到目前为止,我有一个短暂但快乐的体验!感谢罗伯托。