Pip cannot update embedded package in ubuntu 15.04

I can no longer update the package already installed on Ubuntu 15.04. Pip still works by installing the package in /usr/local/python2.7/dist-packages , but the list of paths /usr/python2.7/dist-packages at the top, and even PYTHONPATH cannot get anything above this line. I believe this works in earlier Ubuntus. I tried to find something in /usr/python/site.py but it seems to be doing it right. Adding -S seems to stop the non-local version. I saw this on two computers, I suppose.

Some examples of necessity: Update to get the required function / fix (for PILLOW, in my case) without APT, removing a bunch of packages that list this package as a requirement.

Edit: To clarify the question: I want to change the search order in the directory to restore the behavior of Ubuntu 14.10. There are more efficient ways to do this on many systems, but I want to use the built-in apt packaging, with only one or two (potential) new packages, such as IPython, etc., Instead of using virtual env and Anacoda (both of which I use in other systems). It seems like my desired behavior is Debian's documented behavior, so I'm not sure why it is reordering the path.

Here's a way to demonstrate the problem, note the PYTHONPATH variable is in the middle with two git folders:

 >>> sys.path ['', '/usr/lib/python2.7/dist-packages', '/usr/local/lib/python2.7/dist-packages/requests-2.6.0-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/octave_kernel-0.10.0-py2.7.egg', '/home/username/git/maya', '/home/username/git/udaq/pyUDAQ', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/wx-3.0-gtk2'] 

For reference, I have an appropriate system running 14.04, and it has exactly the expected behavior. First there are two PYTHONPATH dirs, then later local dist-packages are above the built-in.

+5
source share
2 answers

The item has a -t switch . It allows you to configure the directory in which package packages are installed.

You can install the directory in the configuration file and forget about its definition each time you install or update packages

But usually it’s a bad idea to update packages installed by apt

+2
source

Use virtualenv :

install virtualenv

 $ sudo apt-get install python-virtualenv 

create an environment in the MYENV directory

 $ virtualenv MYENV 

activate the environment in the current shell (your application will also need this when running the script)

 $ . MYENV/bin/activate 

use pip / python from your venv located in the MYENV directory (you have)

 (MYENV)$ pip ... 
+2
source

All Articles