Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm still new to Linux, so I'm still trying to understand where executables and their libraries are and how to install packages, so I have Debian Wheezy 7.3 which has these Python versions:

  • Python 2.7.3 (default)
  • Python 2.6.8

So in the directory /usr/bin/ there are these files that I can call from the terminal:

  • python (which is a link to python2.7)
  • python2 (also a link to python2.7)
  • python2.6 (Python 2.6.8 executable)
  • python2.7 (Python 2.7.3 executable)

and in /usr/lib/, the main folders:

  • python2.6
  • python2.7

Currently the latest version of Python is 2.7.6 which I want to install, but I don't know how, I tried using apt-get:

apt-get install python

it outputs python is already the newest version..

So how can I install the latest version of Python ? on the Python download page there is the source tarball, how can I use that to install it separately like having another folder in /usr/lib/ like python2.7.6 and make the python link in /usr/bin/ point to the new executable, or maybe upgrade the current version if it won't break anything.

share|improve this question
You could backport Python 2.7.6 from testing/unstable and replace your curent 2.7.3 with it. This will most likely not cause you any problems. If it does, you can easily revert back. – Faheem Mitha Jan 19 '14 at 15:48
I didn't even install it, fresh install of Debian and type "python" from the command line and I'm in the python3 shell. – frozenjim Jul 24 '15 at 11:00
up vote 12 down vote accepted

You probably are looking for virtualenv or pyenv or some other non-system-wide method to install Python. The method using APT (Advance Package Tool) and dpkg, ensures that all parts of the system are working in harmony, so you maybe want to install python in a separated path, hidden of all the other programs that you can call at will, which is the purpose of pyenv/virtualenv. This answers how to install the latest version of python without breaking the system.

BTW, the latest version of python is 3.3.something, while the latest version of python 2 is the one you pointed out:

➜  ~  apt-cache policy python3 python
  Installed: 3.3.2-17
  Candidate: 3.3.2-17
  Version table:
 *** 3.3.2-17 0
        500 http://ftp.us.debian.org/debian/ testing/main i386 Packages
        100 /var/lib/dpkg/status
  Installed: 2.7.5-5
  Candidate: 2.7.5-5
  Version table:
 *** 2.7.5-5 0
        500 http://ftp.us.debian.org/debian/ testing/main i386 Packages
        100 /var/lib/dpkg/status

(pythonbrew is not longer maintained).

share|improve this answer
ok I installed pip and virtualenv as root, so how can I create a virtual environment with a new Python version ? as far as I know we need the new version to be installed first right ? – Pierre Jan 19 '14 at 16:27
@Peter I think that the first step is pyenv install 2.7.6. You can check all versions using pyenv install -l – Braiam Jan 19 '14 at 16:57

Ok after a lot of searching I decided to build Python from source, so I downloaded the compressed source tarball from the Python download page, now we need to install the build-essential package to be able to compile the source files:

apt-get install build-essential

also we need to install these development packages which are required for some Python modules:


next we extract the downloaded source file:

tar zxf Python-2.7.6.tgz

then we cd into the extracted directory:

cd Python-2.7.6

and follow the instructions on the Python docs:

./configure --prefix=/opt/python
make install # <- in the docs but don't execute: use checkinstall

I chose to install it under the directory /opt/python which I created before, also I used the checkinstall package to create a .deb file so I can uninstall easily later, so we install it first:

apt-get install checkinstall

and substitute the last line make install with:


now I have a new python installation in /opt/python/lib/python2.7 and the binary file is in /opt/python/bin/python2.7.

now I can run in the command line /opt/python/bin/python2.7 to use this Python version, also we can make a link to this executable so we don't type the full path, I named it python2.7.6.

ln -s /opt/python/bin/python2.7 /usr/local/bin/python2.7.6

also the directory /opt/python/bin will contain later other executables like pip and virtualenv or any other modules you install so we can add it to the PATH environment variable, edit ~/.profile and add this line:


and run:

source ~/.profile

I appended the path to the end because it contains executable names like the ones in /usr/bin like python, python2 and python2.7 so we keep the higher priority for /usr/bin.

share|improve this answer
Now, would you happen to know how to configure your new python to see modules that were installed via apt-get? – elsurudo Jan 27 at 21:22

Unfortunately for Python 2.6, compiling from source doesn't work properly on Debian 8 (Jessie) but I found, at least for a Raspberry Pi, that I was able to use older packages from http://packages.debian.org. The order, assuming build-essentials are already in place is something like libdb, python2.6-minimal, python2.6, libpython2.6, python2-6-dev but dpkg -i will tell you what's needed.

share|improve this answer

I had the same question, I tried sudo apt-get install python3 and it worked.

$ ls /usr/bin/python* /usr/bin/python /usr/bin/python3 /usr/bin/python3m /usr/bin/python2 /usr/bin/python3.4 /usr/bin/python2.7 /usr/bin/python3.4m

Hope that helps.

share|improve this answer
This is not working for debian, maybe for ubuntu or others... – piertoni Nov 18 '15 at 14:33

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.