如何使用PyCharm运行Pylint


78

我想将pylint配置为我正在处理的python项目的整个项目目录上的外部工具。我尝试将存储库用作带有__init__.py和不带有模块,并且无论哪种方式都不起作用。

我在设置pylint与PyCharm一起运行时遇到困难。我知道我应该将其作为外部工具运行,但是设置使我感到困惑。

他们的文档上的权威信息已损坏,因此我也无法对其进行检查。

Answers:


129

您可以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设置窗口File -> Settings,然后Tools -> External Tools在侧边栏中导航到。(或搜索“外部工具”)

    PyCharm外部工具

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

    PyCharm编辑工具

  5. pylint从运行Tools -> External Tools -> pylint

    PyCharm外部工具

  6. 在PyCharm终端中查看输出

    PyCharm终端

有关更多详细信息,请参阅使用PyCharm进行胶印

更新:

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

PyCharm检查整个项目


@stevenVascellaro,您可以检查此链接。或者,您可以找到pylint机器上的安装位置。
lmiguelvargasf

1
谢谢。我已经为Windows用户添加了说明。
Stevoisiak

@StevenVascellaro,非常感谢您的贡献!
lmiguelvargasf

尽管此答案有效,但只是将结果写入文本字段。现在有一个PyCharm插件可以执行所有操作,还可以插入IDE并突出显示可疑行。可以从默认存储库下载。有关详细信息,请参见其他答案之一。
JohnEye

我做了您描述的每个步骤,但收到警告消息:使用默认配置找不到配置文件。然后,我在答案中创建了一个资源文件:stackoverflow.com/questions/5253559/…。现在pylint运作良好。
limonik

26

因为找不到合适的现成设置,所以这些是我在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$:

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

唯一缺少的功能是输出过滤器,可以将皮棉描述直接绘制到源视图中,就像内置的棉绒一样。不过目前没有这样的功能。

pylint参数


5
这些设置在Windows上也可以使用,以防万一。
geometrikal

在Windows上怎么样?
StackGuru

14

您可以尝试以下Pylint PyCharm插件

Pylint PyCharm屏幕截图

在PyCharm / IDEA中使用Pylint提供对Python文件的实时和按需扫描。

安装后,实时检查将自动进行。对于按需,您可以选择几个选项,从仅检查当前打开的文件到扫描整个项目: 在此处输入图片说明

(仅出于透明度考虑,我是开发人员)


看起来不错 不幸的是,它在启动时引发异常-它不喜欢/ usr / bin中安装的pylint版本,并且不使用项目的virtualenv中的pylint。我将继续检查更新,因为您的插件看起来将是理想的解决方案:-)
Aaron F

嗨,如果您尚未完成此操作,请在此处附加一个idea.log文件来打开一个问题。
罗伯托·雷纳尔迪

我快速浏览了一下,似乎与#29重复。我将日志中的相关行添加到该问题。
亚伦F

@AaronF您需要将pylint的路径手动设置为virtualenv上安装的路径。例如:: projectvenv / bin / pylint而不是/ usr / bin / pylint
Gautam Jain

13

编辑:我现在使用并推荐我第一次编写此答案时不存在的Pycharm插件


一位同事将我指向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$\:.*

PyLint for PyCharm外部工具设置屏幕截图

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


5

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

可以使用msg-templatepylintrc文件中的选项或CLI选项将Pylint配置为以特定格式输出消息--msg-template

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

在外部工具设置中,Output filters:可以将设置为, $FILE_PATH$:$LINE$:$COLUMN$: .* 以便PyCharm显示直接跳转到报告位置的链接。可以将其与之结合使用,output-format=colorized从而得到以下信息: 在此处输入图片说明 尽管配置了列,PyCharm仍无法识别该列。但是拥有文件和行对我来说足够了。


请参阅有关正确的输出过滤器以检测列的答案:stackoverflow.com/a/50298934/324731
lkraider

@lkraider我看不到相关的区别。您正在尝试用逗号分隔行和列-这没有用。然后,您可以逃避不必要的冒号。我想你的完整的解决方案的msg-template,并Output filters没有测出列。也许其他地方有问题,您能找出问题所在吗?我正在使用PyCharm 2018.1.2。
ub_marco

您如何测试检测?我的不会像您一样在行号(下划线)下划线,但是单击链接会将插入号移动到正确的位置。
lkraider

我发现了问题,的确,如果行号显示为下划线,则该链接将不起作用。在我的示例中,当行数大于99时,就会发生这种情况。如果存在空格,链接将正确地将插入号放置在列位置。
lkraider

这曾经为我工作。...现在我得到“ Windows找不到'file:/// C:\ Use ...”。
Dan Ciborowski-MSFT

3

首先使用pip安装pylint:

pip install pylint

您必须打开“设置>工具>外部工具”,然后在PyCharm上按“ +”按钮。

这是一个具有良好设置的示例


2
我按照示例进行操作,但运行时出现错误。无法运行程序“ pylint”(在目录“ / Users / RodChen / my_project”中):error = 2,没有这样的文件或目录。我确定目录存在,因为我使用$ FileDir $作为工作目录。我该如何解决?谢谢。
罗德·陈

我猜您使用Windows。pylint是否在终端上工作?
ikreb '16

2
我使用Mac。我仅在工作的虚拟环境中安装了pylint,而pylint在普通终端上不工作。在系统中安装了pylint之后,pylint在PyCharm中工作了!谢谢!
罗德·陈

@RodChen我也已pylint安装在虚拟环境中。我已经将PyCharm指向我的虚拟环境的python解释器,它似乎可以正常工作。我是新手pylint,所以也许您是指一些我不知道的特定功能。
Marc

3

Roberto Leinardi为pycharm创建了一个pylint插件,该插件确实有效并且很好地集成到了IDE中:

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

到目前为止,我有一段短暂而愉快的经历!感谢Roberto。


1

多亏了这里的信息和PyCharm的更新文档,我才能够很好地工作,也可以将虚拟环境用于项目(确保任何包都可以在虚拟环境中部署,而无需在全球范围内部署) )。

采取lkraider之前提供的内容,但稍作修改:

  1. 确保在虚拟环境中安装pylint。请注意,请确保在创建虚拟环境时未选择“继承全局站点程序包”。如果这样做,那么pylint最终将在全球范围内使用,这将不起作用。

  2. 添加新的外部工具并进行配置。与lkraider提供的服务相比,这略有不同。我希望它看起来更像普通的pylint输出,因此我的msg-template(和Output过滤器)有点不同。每个人都有自己的。对于基于虚拟环境执行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$:

皮林的外部工具


在Windows上怎么样?
StackGuru
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.