pkg_resources.resource_stream在python3上失败

时间:2015-04-17 14:23:54

标签: python python-3.x pkg-resources

我正在尝试使用pkg_resources加载项目中存在的资源,但它只是抛出一个例外,说它引用"无法对加载程序执行此操作没有' get_data()'" 。我不确定我在这里做错了什么,或者如果pkg_resources在python 3.3上以某种方式被破坏了。我准确地使用python 3.3.3。这是我试图执行的代码

>>> import pkg_resources
>>> data = pkg_resources.resource_stream('configgenerator', 'schema_rules.yml')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/users/frank/workspace/configgenerator/env/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/pkg_resources.py", line 931, in resource_stream
    self, resource_name
  File "/home/users/frank/workspace/configgenerator/env/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/pkg_resources.py", line 1207, in get_resource_stream
    return StringIO(self.get_resource_string(manager, resource_name))
  File "/home/users/frank/workspace/configgenerator/env/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/pkg_resources.py", line 1210, in get_resource_string
    return self._get(self._fn(self.module_path, resource_name))
  File "/home/users/frank/workspace/configgenerator/env/lib/python3.3/site-packages/distribute-0.6.31-py3.3.egg/pkg_resources.py", line 1289, in _get
    "Can't perform this operation for loaders without 'get_data()'"
NotImplementedError: Can't perform this operation for loaders without 'get_data()'
>>> 

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:14)

这可能由于多种原因而发生,但最常见的是该包不是可导入的模块,因为没有__init__.py