Как я могу вручную зарегистрировать рассылки с помощью pkg_resources? - PullRequest
1 голос
/ 01 марта 2009

Я пытаюсь установить пакет в Google App Engine. Пакет довольно сильно зависит от pkg_resources, но на App Engine невозможно запустить setup.py.

Однако в исходном коде нет кода, специфичного для платформы, поэтому не составит труда просто заархивировать исходный код и включить его в системный путь. И у меня установлена ​​и работает версия pkg_resources.

Единственная проблема заключается в том, что пакет действительно зарегистрирован с pkg_resources, поэтому при вызове iter_entry_points он может найти соответствующие плагины.

Какие методы мне нужно вызывать для регистрации модулей на sys.path со всеми соответствующими метаданными, и как мне выяснить, какими должны быть эти метаданные?

Ответы [ 3 ]

1 голос
/ 24 марта 2009

Да, для библиотек на основе setuptools вам нужно будет развернуть метаданные библиотеки "Egg" вместе с ней. Самый простой способ, который я нашел, - это развернуть целую среду virtualenv , содержащую ваш проект и необходимые библиотеки.

Я сделал этот процесс вручную и добавил этот код в main.py, чтобы инициализировать папку site-packages так, чтобы pkg_resources работал:

import site
site.addsitedir('lib/python2.5/site-packages')

Однако, вы можете попробовать appengine-monkey , который автоматизирует большую часть этого для вас.

0 голосов
/ 29 января 2010

Создайте файл setup.py для пакета, как обычно, и затем используйте «setup.py sdist --formats = zip» для создания исходного zip-файла. Встроенный исходный zip-файл будет включать каталог метаданных .egg-info, который затем будет найден pkg_resources. Кроме того, вы можете использовать bdist_egg для всех ваших пакетов.

0 голосов
/ 13 апреля 2009

В вашей локальной системе разработки запустите python setup.py bdist_egg, которая создаст Zip-архив с необходимыми метаданными Добавьте его к вашему sys.path, и он должен работать правильно.

...