这个问题是尝试获得如何执行该操作的精确指令。之前有过几次尝试,但似乎都不是完整的解决方案:
手头的任务是读取程序正在运行的egg的信息。我理解有几种方法:
硬编码蛋的位置并将其视为zip档案-这将起作用,但不够灵活,因为如果文件移动到另一个位置,则需要编辑和重新编译
使用
ResourceManager().resource_filename(__name__, filename)
-这似乎在事实上受到限制,因为我无法访问位于蛋内而不在包内的文件。如filename中的"../../EGG-INFO/PKG-INFO"等标记不起作用,会产生KeyError。因此也不好用。使用
dist = pkg_resources.get_distribution("dist_name")
,然后使用dist对象获取信息,但我无法从文档中理解应该如何指定我的分发名称?它找不到它。
所以,我正在寻找正确的关于使用pkg_resources.get_distribution
的解决方案,同时终于有一个完整的解决方案来读取蛋内的任何文件。
谢谢!
resource_stream(Requirement.parse("restez==0.3.2"), "README.txt")
但这取决于打包方式,可能无法与非egg文件一起使用。 - Alan Franzoniresource_filename
,但如果该egg文件被压缩,则该方法无法使用。 - Emiliano