I'm creating an app that downloads and installs its own egg plugins, but I have a problem loading the egg after easy_install extracts it into place. This is how it works now:
The problem is that the pth is not reloaded until the python process is relaunched, which means the app has to be stopped and restarted (app is a long-running process, and plugin installation must not require a restart).
So the question is how to, either reload the pth programatically so that plugin entry-point discovery works for the new egg, or somehow have easy_install return the path it installed the egg into, so I can manually (with pkg_resources) load the new plugin?
I could create a function that tries to guess the easy_install'ed path or parse the pth on my own, but I prefer not to, if at all possible.
Python 2.6, setuptools 0.6c9
Thanks to Marius Gedminas, what I'm doing now basically is:
dist = pkg_resources.get_distribution(plugin_name)
entry = dist.get_entry_info(entry_point_name, plugin_name)
plugin = entry.load()
After some browsing of the documentation I think what you need to do is
pkg_resources.get_distribution(name).activate()
where name is the name of the package you just installed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With