关于python:如何使用PyCharm运行Pylint

How to run Pylint with PyCharm

我想将pylint配置为我正在处理的一个python项目的整个项目目录中的一个外部工具。我曾尝试将存储库用作带有__init__.py和不带的模块,但这两种方式都不起作用。

我很难让皮林特和皮查姆一起跑。我知道我应该作为一个外部工具来运行它,但是设置会让我困惑。

他们文档上的权威源被破坏了,所以我也无法检查。


通过以下步骤,您可以设置pylint与pycharm一起工作:

  • 安装pylint

    1
    $ pip install pylint
  • 找到您的pylint安装文件夹:

    1
    2
    $ which pylint         # MacOS/Linux
    /usr/local/bin/pylint  # this is just a possible output check yours
    1
    2
    $ where pylint         # Windows
    %LocalAppData%\Programs\Python\Python36-32\Scripts\pylint.exe  # possible location
  • 打开带有File -> Settings的pycharm设置窗口,然后导航到侧边栏中的Tools -> External Tools。(或搜索"外部工具")

    PyCharm External tools

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

    PyCharm Edit Tool

  • Tools -> External Tools -> pylint运行pylint

    PyCharm External Tools

  • 在Pycharm终端中查看您的输出

    PyCharm terminal

  • 有关详细信息,请参阅PyCharm的PyLinting。

    更新:

    如果要使用pylint检查整个项目或特定的文件或目录,可以右键单击项目根目录、文件或目录,然后单击External Tools -> pylint,如下所示。

    PyCharm check entire project


    因为我没有找到一个有效的现成设置,这些是我在MacOS上的Pycharm CE 2018.1中使用的设置:

    1-您的项目virtualenv或全球范围内的pip install pylint

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

    1
    2
    3
    4
    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$:

    注意msg模板所需的双引号,以及输出过滤器的转义字符。输出过滤器允许单击文件路径并在IDE源编辑器中打开位置。

    唯一缺少的特性是输出过滤器,可以将lint描述直接绘制到源代码视图中,这与内置linter一样。不过目前还没有这样的功能。

    pylint arguments


    编辑:我现在使用并推荐PyCharm插件,这在我第一次写这个答案时并不存在。

    一位同事把我指给吉特胡的皮林特·皮哈姆。它是一个围绕pylint的包装器,输出格式为pycharm。以下是我的设置方法:

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

    这就产生了build/scripts-2.7/pylint-pycharm

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

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

    PyLint for PyCharm External Tool settings screenshot

    现在从工具->外部工具->pylintpycharm运行它。每行输出都将超链接到源代码中的相关位置。


    您可以尝试此pylint pycharm插件:

    Pylint PyCharm screenshot

    使用pycharm/idea中的pylint提供对python文件的实时和按需扫描。

    一旦你安装了它,实时检查就会自动工作。对于点播,您有几个选项,从检查当前打开的文件到扫描整个项目:enter image description here

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


    关于先前答案的注释。我正在寻找一种方法让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结合起来,所以我得到:enter image description here尽管配置了该列,但pycharm无法识别该列。但是拥有文件和行对我来说已经足够了。


    首先用pip安装pylint:

    1
    pip install pylint

    您必须打开"设置>工具>外部工具",然后按Pycharm上的"+"按钮。

    下面是一个设置良好的示例。


    Roberto Leinardi为PyCharm创建了一个PyLint插件,它真正起作用,并很好地集成到IDE中:

    易于从存储库安装,完整说明如下:网址:https://github.com/leinardi/pylint-pycharm

    到目前为止,我有一段短暂而愉快的经历!向罗伯托致敬。


    多亏了这里的信息和Pycharm更新的文档,我已经能够很好地使用这个项目的虚拟环境(确保任何包都可以部署在虚拟环境中,不需要部署到全球)。

    采用之前LKRAIDER提供的,但稍作修改:

  • 确保在虚拟环境中安装pylint。注意,确保在创建虚拟环境时没有选择"继承全局站点包"。如果你这样做,那么皮林特最终将成为全球的一员,而这不会奏效。

  • 添加新的外部工具并配置。这与LKRAIDER提供的稍有不同。对于其中一个,我希望它看起来更像普通的pylint输出,因此我的msg模板(和输出过滤器)有点不同。各自为政。第二个更改对于基于虚拟环境执行pylint更为关键,这是我在其中使用$pyinterpreterdirectory$的程序参数。

  • 1
    2
    3
    4
    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$:

    皮林的外部工具