我想将pylint配置为我正在处理的python项目的整个项目目录上的外部工具。我尝试将存储库用作带有__init__.py
和不带有模块,并且无论哪种方式都不起作用。
我在设置pylint与PyCharm一起运行时遇到困难。我知道我应该将其作为外部工具运行,但是设置使我感到困惑。
他们的文档上的权威信息已损坏,因此我也无法对其进行检查。
我想将pylint配置为我正在处理的python项目的整个项目目录上的外部工具。我尝试将存储库用作带有__init__.py
和不带有模块,并且无论哪种方式都不起作用。
我在设置pylint与PyCharm一起运行时遇到困难。我知道我应该将其作为外部工具运行,但是设置使我感到困惑。
他们的文档上的权威信息已损坏,因此我也无法对其进行检查。
Answers:
您可以pylint
按照以下步骤设置为与PyCharm合作:
安装pylint
:
$ pip install pylint
找到您的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
使用打开PyCharm设置窗口File -> Settings
,然后Tools -> External Tools
在侧边栏中导航到。(或搜索“外部工具”)
通过单击+号并相应地填充字段来设置外部工具。在Program
使用运行时获得的路径which pylint
,对于其他值,您可以使用相同的图像。
pylint
从运行Tools -> External Tools -> pylint
:
在PyCharm终端中查看输出
更新:
如果要用于pylint
检查整个项目或特定文件或目录,则可以右键单击项目的根目录,文件或目录,External Tools -> pylint
如下所示。
因为找不到合适的现成设置,所以这些是我在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 PyCharm插件:
在PyCharm / IDEA中使用Pylint提供对Python文件的实时和按需扫描。
安装后,实时检查将自动进行。对于按需,您可以选择几个选项,从仅检查当前打开的文件到扫描整个项目:
(仅出于透明度考虑,我是开发人员)
编辑:我现在使用并推荐我第一次编写此答案时不存在的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$\:.*
现在,从工具->外部工具-> PyLintPyCharm运行它。输出的每一行都将超链接到源代码中的相关位置。
关于先前答案的注释。我正在寻找一种使PyCharm知道输出语法的方法,以便可以直接跳转到文件位置。无需使用其他工具即可工作。
可以使用msg-template
pylintrc文件中的选项或CLI选项将Pylint配置为以特定格式输出消息--msg-template
。
我将其设置为:
msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'
在外部工具设置中,Output filters:
可以将设置为,
$FILE_PATH$:$LINE$:$COLUMN$: .*
以便PyCharm显示直接跳转到报告位置的链接。可以将其与之结合使用,output-format=colorized
从而得到以下信息:
尽管配置了列,PyCharm仍无法识别该列。但是拥有文件和行对我来说足够了。
msg-template
,并Output filters
没有测出列。也许其他地方有问题,您能找出问题所在吗?我正在使用PyCharm 2018.1.2。
pylint
安装在虚拟环境中。我已经将PyCharm指向我的虚拟环境的python解释器,它似乎可以正常工作。我是新手pylint
,所以也许您是指一些我不知道的特定功能。
Roberto Leinardi为pycharm创建了一个pylint插件,该插件确实有效并且很好地集成到了IDE中:
易于从存储库安装,完整说明位于:https : //github.com/leinardi/pylint-pycharm
到目前为止,我有一段短暂而愉快的经历!感谢Roberto。
多亏了这里的信息和PyCharm的更新文档,我才能够很好地工作,也可以将虚拟环境用于项目(确保任何包都可以在虚拟环境中部署,而无需在全球范围内部署) )。
采取lkraider之前提供的内容,但稍作修改:
确保在虚拟环境中安装pylint。请注意,请确保在创建虚拟环境时未选择“继承全局站点程序包”。如果这样做,那么pylint最终将在全球范围内使用,这将不起作用。
添加新的外部工具并进行配置。与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$:
pylint
机器上的安装位置。