Доступ к собственным метаданным Python egg - PullRequest
5 голосов
/ 07 октября 2008

Я создал python egg с помощью setuptools и хотел бы получить доступ к его метаданным во время выполнения. В настоящее время я получил работу:

import pkg_resources
dist = pkg_resources.get_distribution("my_project")
print(dist.version)

но это, вероятно, сработало бы неправильно, если бы у меня было несколько версий одного и того же яйца. И если у меня есть и установленная версия egg, и версия для разработки, то запуск этого кода из версии разработки приведет к подбору версии установленного egg.

Итак, как мне получить метаданные для моего яйца, а не случайно установленного яйца в моей системе?

Ответы [ 2 ]

4 голосов
/ 07 октября 2008

Я тоже немного новичок в Python, но из того, что я понимаю:

Хотя вы можете установить несколько версий «одного и того же» яйца (с одним и тем же именем), только одна из них будет доступна для любого конкретного фрагмента кода во время выполнения (в зависимости от вашего метода обнаружения). Так что, если ваше яйцо является тем, которое вызывает этот код, оно должно быть уже выбрано как версия my_project для этого кода, и ваш доступ будет к вашей собственной версии.

0 голосов
/ 07 октября 2008

Точно. Таким образом, вы должны быть в состоянии получить информацию только о доступном в настоящее время яйце (единственном числе) библиотеки. Если у вас есть несколько яиц одной и той же библиотеки в папке site-packages, проверьте файл easy-install.pth в той же папке, чтобы увидеть, какое яйцо действительно используется: -)

На сайте примечание: это именно та точка систем, как zc.buildout, которая позволяет вам определить точную версию библиотеки, которая будет доступна вам, например, при разработке приложения или обслуживании веб-приложения. Так, например, вы можете использовать версию 1.0 для одного проекта и 1.2 для другого.

...