[Distutils] Pip enhancement?

Skip Montanaro skip at pobox.com
Wed Aug 27 17:34:52 CEST 2014


Over on python-dev, Neal Becker asked:

> On systems where os-level packaging is available (e.g., fedora
> linux), it is not unusual to want a newer python package installed
> than available from the vendor.  pip install --user can be used for
> this.

> But then there is the danger that these pip installed packages are
> not maintained.

> At least, pip should have the ability to alert the user to potential
> updates,

> pip update

> could list which packages need updating, and offer to perform the
> update.  I think this would go a long way to helping with this
> problem.

I responded:

> How? I have exactly this problem with nose. We actually get it
> bundled (currently at ancient 1.1.2, trying to get to 1.3.4) with a
> bunch of other open source software from an outside packaging
> company, and even though I add the --user flag, it still complains
> that a version is already installed. When I add the --upgrade flag
> it tries to uninstall the global version.

> then in a follow-up reply to Paul Moore's reply:

> On Wed, Aug 27, 2014 at 8:24 AM, Paul Moore <p.f.moore at gmail.com> wrote:
> > Do you mean something like "pip list --outdated"?

> I was unaware of that command, as we were stuck at pip 1.2.1. I just
> updated pip manually to 1.5.6. That is a very helpful command. It
> would be even better if it understood --user so it could restrict
> it's view to user-installed stuff.

> Also, given that packages can be found in multiple places on a
> system, for me:

> * the OpenSuSE system packages
> * TWW-provided system-wide packages
> * our own system-wide packages in /opt/local
> * my private stuff in ~/.local

> it would be great if there was a way for it to tell me where on my
> system it found outdated package X. The --verbose flag tells me all
> sorts of other stuff I'm not really interested in, but not the
> installed location of the outdated package.

Paul also added:

> On 27 August 2014 14:46, Skip Montanaro <skip at pobox.com> wrote:
> > it would be great if there was a way for it to tell me where on my
> > system it found outdated package X. The --verbose flag tells me
> > all sorts of other stuff I'm not really interested in, but not the
> > installed location of the outdated package.

> There's also packaged environments like conda. It would be nice if
> pip could distinguish between conda-managed packages and ones I
> installed myself.

> Really, though, this is what the PEP 376 "INSTALLER" file was
> intended for. As far as I know, though, it was never implemented
> (and you'd also need to persuade the Linux vendors, the conda
> people, etc, to use it as well if it were to be of any practical
> use).

> Agreed about reporting the installed location, though. Specific
> suggestions like this would be good things to add to the pip issue
> tracker.

The entire thread is here:

https://mail.python.org/pipermail/python-dev/2014-August/136004.html

So, think of this as a multi-faceted feature request for pip. :-)

Thx,

Skip


More information about the Distutils-SIG mailing list