派林特不喜欢包装_resources.resource_文件名

2024-10-05 11:38:08 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的脚本中,我使用:

python from pkg_resources import resource_filename

PyDev和pylint 0.23都抱怨这里没有解析的导入。在

E0611 No name 'resource_filename' in module 'pkg_resources'

实际上,在不理解PyDev/pylint代码的情况下,只会分析PyDev/pylint。显然pkg_resourcespkg_resources做了一些特殊的定义。包装和标志当然在那里,整个事情都很好。两个问题:

  • 我怎样才能让Eclipse和PyDev都相信他们错了?在
  • 首先是什么导致了这个问题?我没有发现其他人有这种问题,我怀疑我的情况有点独特。。。:)

Python2.7.1(在OSX下),发布0.6.19。在


Tags: nonameinfromimport脚本情况pkg
2条回答

我也有同样的问题。对于Pydev,我在上找到了answerpydev.org网站:转到错误行,按ctrl-1,然后选择“未定义变量”。然后它将附加一个#@UndefinedVariable注释,错误就消失了。

对于pylint,禁用E1101就可以了,pragma# pylint: disable=E1101。Pylint pragmas只需要在相同的缩进级别,但是pydev注释必须在同一行。我的评论有些混乱的功能变成了:

def get_test_datafile(file_):
    # pylint: disable=E1101
    return pkg_resources.resource_string(__name__, #@UndefinedVariable
                                         'testdata/'+file_)

通过修改项目的pydevpython解释器定义,可以加载麻烦的动态模块。Configure the default list of 'forced built-ins'包含动态生成的定义。强制内建是通过剥离和加载/检查动态生成的类来生成的。

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

我已经这样做了,现在我的错误消失了,方法的自动完成工作对我的项目来说还不错。我使用的是python2.7.9、pydev3.3.3和eclipse开普勒r2。

对于pylint,您可以disable the warning globally in your project's pylint config,用于整个文件,或其使用的一个实例。您可以在文件的开头添加一个# pylint: disable=E1101注释,以便对该模块禁用它,或者在上面的行上添加一个注释,在该行中您可以使用它来对该实例禁用它。还有一种可能很耗时的manually hint to pylint that your class has specific methods

相关问题 更多 >

    热门问题