4 回答
TA贡献1853条经验 获得超18个赞
尝试使用pkg_resources,它是setuptools的一部分(并且在我现在可以访问的所有python上都可用):
>>> import pkg_resources
>>> pkg_resources.resource_filename(__name__, "foo.config")
'foo.config'
>>> pkg_resources.resource_filename('tempfile', "foo.config")
'/usr/lib/python2.4/foo.config'
有关使用pkg_resources来获取鸡蛋页面和pkg_resources页面上的资源的更多讨论。
还要注意,在可能的情况下,建议使用pkg_resources.resource_stream或pkg_resources.resource_string,因为如果包是egg的一部分,则resource_filename会将文件复制到一个临时目录中。
TA贡献1813条经验 获得超2个赞
使用pkgutil.get_data
。它是的表亲pkg_resources.resource_stream
,但在标准库中,并且应与平面文件系统安装以及压缩包和其他导入程序一起使用。
TA贡献1757条经验 获得超7个赞
这可能就是这样做的方法,而无需诉诸更高级的功能,例如使用setuptools将文件安装在它们所属的位置。
请注意,这种方法存在问题,因为在具有真正安全框架(UNIX等)的OS上,运行脚本的用户可能无权访问安装了DB的系统目录中的DB。
添加回答
举报