首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从.pylintrc运行时,pylint会忽略TextMate

当从.pylintrc运行时,pylint会忽略TextMate
EN

Stack Overflow用户
提问于 2012-05-31 15:24:07
回答 2查看 1.1K关注 0票数 2

当我在TextMate中的python文件上运行验证语法时,我试图让pylint提供html输出。我安装了pycheckmate,pylint,并在$HOME中创建了一个$HOME文件,该文件将输出格式设置为html。

在TextMate的高级控制面板中,在Shell变量选项卡中,我将TM_PYCHECKER设置为/usr/local/share/python/pylint。如果触发验证语法,它将使用所有默认选项运行pylint,并给出输出。如果我将TM_PYCHECKER更改为/usr/local/share/python/pylint --rcfile "$HOME/.pylintrc"并再次验证语法,我将得到:

请安装PyChecker、PyFlakes或Pylint以进行更广泛的代码检查。

如果我从命令行运行/usr/local/share/python/pylint,没有任何参数,输出就是html,因此我知道它正在读取rcfile。我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-31 23:34:42

好的,我想我发现了这个问题: pycheckmate将--output-format=parseable'设置为一个强制参数,以使pylint成为pylint。通过将/usr/local/share/python/pylint替换为输出其参数的包装脚本,我发现了这一点:

代码语言:javascript
复制
#!/usr/bin/env python

import sys
from pylint import lint

print sys.argv[1:]
lint.Run(sys.argv[1:])

当我在TextMate上运行它时,我看到了这个:

代码语言:javascript
复制
['--output-format=parseable', '/Users/smithm5/test.py']
test.py:26 [C] Line too long (90/80)
…

因此,我深入研究了/Applications/TextMate.app/Contents/SharedSupport/Bundles/Python.tmbundle/Support/bin/pycheckmate.py本身。当然,它添加了这个参数,以及大量硬编码的html。因此,为了解决这个问题,我删除了所有的escape()包装器,在第287行设置了opts = (),这样我就可以设置自己的darn选项,并将第332行更改为print line

票数 2
EN

Stack Overflow用户

发布于 2012-05-31 17:25:10

一个有一定基础的猜测:尝试将$HOME替换为指向主目录的绝对路径。像$HOME这样的Shell变量可能无法在TextMate的控制面板中使用。

更新:查看我拥有的pycheckmate.py版本中包含的Python.tmbundle脚本,似乎不可能包含参数,比如--rcfile /path/to/rcfileTM_PYCHECKER的值应该仅是不带参数的检查器二进制文件的路径。但是,如果您自己制作了Python.tmbundle的副本,那么您应该能够编辑pycheckmate.py来做您想做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10836517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档