pylint不喜欢pkg_resources.resource_filename

yac*_*oob 5 python eclipse pydev pkg-resources

在我的脚本中我使用:

python from pkg_resources import resource_filename

PyDev和pylint 0.23都抱怨未解决的导入问题.

E0611 No name 'resource_filename' in module 'pkg_resources'

据我所知,这是因为PyDev和pylint都只执行源代码分析,而实际上并没有尝试解析/编译它.并且显然pkg_resources做了一些特别的定义pkg_resources.包装和符号当然在那里,整个工作都很好.两个问题:

  • 如何让Eclipse和PyDev相信他们错了?
  • 是什么原因引起了这个问题?我没有发现其他人有这种问题,我怀疑我的情况有点独特...... :)

Python 2.7.1(在OSX下),分发0.6.19.

Epu*_*Epu 6

您可以通过修改项目的pydev python解释器定义来加载麻烦的动态模块.配置"强制内置插件"的默认列表,以包括您使用的动态生成的定义.强制内置函数是通过shelling out和加载/检查动态生成的类生成的.

在python解释器定义中(preferences => pydev => interpreters => python interpreter),为pydev项目选择当前使用的解释器.选择Forced Builtins选项卡.按New...按钮,然后添加pkg_resources到列表中.

我已经完成了这个,现在我的错误消失了,方法的自动完成对我的项目来说是可行的.我正在使用python 2.7.9,pydev 3.3.3和eclipse kepler r2.

对于pylint,您可以在项目的pylint配置中为整个文件或其使用的一个实例全局禁用警告.您可以# pylint: disable=E1101在文件的开头添加注释以禁用该模块,或者在上面的行上添加注释,以便为该实例禁用它.还有一种可能耗时的方法来手动提示您的类具有特定方法的pylint.