Plone pylinting zopeish文件:F0401:11,0:无法导入';zope.interface';

Plone pylinting zopeish文件:F0401:11,0:无法导入';zope.interface';,plone,zope,pylint,Plone,Zope,Pylint,我正在尝试针对被Zope导入污染的源代码运行pylint: ************* Module youraddon.interfaces F0401: 11,0: Unable to import 'zope.interface' 问题中的代码: from zope.interface import Interface 并且在pylint的sys.path中将zope.interface egg作为egg传递: cat ../../bin/pylint|grep -i interfa

我正在尝试针对被Zope导入污染的源代码运行pylint:

************* Module youraddon.interfaces
F0401: 11,0: Unable to import 'zope.interface'
问题中的代码:

from zope.interface import Interface 
并且在pylint的sys.path中将zope.interface egg作为egg传递:

cat ../../bin/pylint|grep -i interface
'/fast/buildout-cache/eggs/zope.interface-3.6.7-py2.6-macosx-10.6-i386.egg',  
现在的问题是

  • 我是否可以让pylint导入zope.interface以它能够理解的方式?为什么它实际上失败了

  • 如果没有,我如何抑制导入警告并将文件的其余部分清除

还得到:

      # E0611: 11,0: No name 'interface' in module 'zope'

您可以禁用特定的Pylint错误消息:

1) 在命令行上使用--disable选项

$ pylint --disable=F0401 youraddon.py
2) 在文件中添加特定注释

#pylint: disable=F0401

我不会全局安装pylint,而是使用安装项目时使用的buildout(假设您使用的是buildout)来安装它。然后将实例鸡蛋添加到pylint部分

大概是这样的:

[buildout]
parts =
  instance
  pylint

[instance]
...
eggs =
  your.addon
  ...

[pylint]
recipe = zc.recipe.egg
entry-points = pylint=pylint.lint:Run
eggs =
  pylint
  ${instance:eggs}
一个更复杂的例子:


干杯

听起来派林不知道名称空间,正在zope.components中寻找zope.interface。由您提交;-)您还可以将讨论转到python-projects@lists.logilab.orgI很快就将stackoverflow.com视为这个问题的死胡同>\u类似的错误报告:谢谢。我可以很好地禁用错误消息,但我希望pylint按预期工作。如上所述,已经在这样做了,但pylint仍然找不到zope.interface