标准pkgutil模块的
get_data()功能将计算相对于包的数据路径,并通过用于导入
hermes包的Python模块加载器为您检索数据:
import pkgutildata = pkgutil.get_data('hermes', 'templates/python.tpl')
当然,在某些情况下,您可以使用从计算出的路径读取数据
hermes.__file__,但是如果您打算分发项目,请考虑将其以不同的方式安装在最终用户的计算机上:作为纯文件,以压缩的鸡蛋形式部署档案等。在后一种情况下,您的
hermes模块将由Python使用导入
zipimporter,从而阻止您执行常规 *** 作
open(path).read():
>>> import hermes>>> hermes.__loader__<zipimporter object "/home/pat/.cascade/virt/foo/lib/python2.6/site-packages/foo-0.0.0-py2.6.egg">
如果可以在
distribute代码库上添加运行时依赖关系,则可以考虑考虑
pkg_resourcesmodule,虽然可以提供相同的结果,但还可以添加其他功能。
import pkg_resourcesdata = pkg_resources.resource_string('hermes', 'templates/python.tpl')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)