preventing pip from removing system packages during upgrade
I have a fairly straightforward Ubuntu (13.04) desktop installation, which
comes complete with several Ubuntu-packaged Python utilities -- these live
in /usr/lib/python2.7 and are owned by root. I call these "system" Python
packages.
I also do a lot of scientific work with Python and so I have installed
tools like numpy, matplotlib, etc. using pip -- these live in
/usr/local/lib/python2.7 and are owned by me (I chowned /usr/local because
I'm the only user on this machine). I call these "local" Python packages.
I put the local path in front of the system one in my PYTHONPATH so that I
load local packages preferentially.
Now, I'm trying to upgrade one of the local packages that I installed
using pip, and pip is failing because it wants to uninstall a dependent
system package as part of the upgrade process.
I have two questions about this, addressing the problem from each end :
One way to fix this problem is to get pip to upgrade my local packages and
ignore the system-installed ones (if possible). Can I prevent pip from
trying to uninstall a system package during a local package upgrade, but
only for one dependency ?
Another way would be to have pip install a newer version of the package,
and then use that version to satisfy dependencies in apt related tools. Is
there a way to tell Ubuntu that a pip-installed package will satisfy an
apt dependency ?
(I am familiar with virtualenv, but on this machine I only ever use this
one environment, so I'd really like to avoid keeping track of whether I'm
working in the correct virtualenv.)
No comments:
Post a Comment