On 13 October 2016 at 15:27, Arthur Goldberg <artgoldb...@gmail.com> wrote:
> Is there a recommended way to use pip, especially pip install, from within a
> program and obtain good error handling?
Nothing supported, sorry. The only supported interface is the command
line, so you can use subprocess.Popen to run pip in a subprocess. But
the pip API is for internal use only. (In particular, I'm not
surprised there's not a good interface for trapping errors from pip
APIs, it's not a usage we particularly consider). We're not against
*having* a supported API, it's just that no-one has put in the work to
define such a thing (and error handling would be an obvious thing we'd
need to consider :-)) or document and implement it (and create tests
for it) yet.
I assume, by the way, that you are aware of the risks of installing
new packages into site-packages from within a Python process? Most of
the time you should be OK, but Python does cache information within
the import system, and you do run the risk of getting stale data.
That's not a pip-specific issue, though, so it's something you should
be aware of regardless of how you call pip.