Как к easy_install плагину яйца и загрузке это, не перезапуская приложение?

Я создаю приложение, которое загружает и устанавливает его собственные плагины яйца, но у меня есть проблема при загрузке яйца после того, как easy_install извлекает его в место. Это - то, как это работает теперь:

  • Яйцо загрузок приложений во временную папку
  • Яйцо установок с setuptools.command.easy_install.main () в ~/.app/plugins папка (на который указывает pth на dist-пакетах),
  • На данном этапе ~/.apps/plugins/easy-install.pth обновляется с новым путем яйца

Проблема состоит в том, что pth не перезагружается, пока процесс Python не повторно запускается, что означает, что приложение должно быть остановлено и перезапущено (приложение является продолжительным процессом, и сменная установка не должна требовать перезапуска).

Таким образом, вопрос состоит в том, как к, или перезагрузить pth программно так, чтобы сменные работы исследования точки входа для нового яйца, или так или иначе имели возврат easy_install путь, в который это установило яйцо, таким образом, я могу вручную (с pkg_resources) загружают новый плагин?

Я мог создать функцию, которая пытается предположить, что easy_install'ed соединяют каналом или анализируют pth самостоятельно, но я предпочитаю не, если вообще возможный.

Python 2.6, setuptools 0.6c9


Благодаря Marius Gedminas, что я делаю теперь в основном:

dist = pkg_resources.get_distribution(plugin_name)
entry = dist.get_entry_info(entry_point_name, plugin_name)
plugin = entry.load()

6
задан Community 23 May 2017 в 10:24
поделиться

1 ответ

После некоторого просмотра документации я думаю вам нужно сделать

pkg_resources.get_distribution(name).activate()

, где имя - это имя только что установленного пакета.

4
ответ дан 17 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: