Вопрос заключается в попытке получить точную инструкцию о том, как это сделать. Ранее было несколько попыток, которые, похоже, не являются полными решениями:
решение для перемещения файла внутри пакета
доступ к метаинформации через get_distribution
Задача состоит в том, чтобы прочитать информацию о яйце, из которого запущена программа. Есть несколько способов, как я понимаю:
-
жесткий код местоположения яйца и рассматривать его как zip-архив - будет работать, но не достаточно гибко, потому что его нужно будет отредактировать и перекомпилировать, если файл перенесен в другое место
-
use
ResourceManager().resource_filename(__name__, filename)
- это, по-видимому, ограничено тем фактом, что я не могу получить доступ к файлу, который находится внутри яйца, но не внутри пакета. Такие обозначения, как "../../EGG-INFO/PKG-INFO" в имени файла, не работают с KeyError. Так что ничего хорошего. -
используйте
dist = pkg_resources.get_distribution("dist_name")
, а затем используйте объект dist для получения информации, но я не могу понять из документов, как мне указать имя моего дистрибутива? Он не может его найти.
Итак, я ищу правильное решение об использовании pkg_resources.get_distribution
плюс, было бы неплохо наконец иметь полное решение для чтения любого файла изнутри яйца.
Спасибо!