This is an old revision of the document!


Python Development Environment

As most of the time, we'll start with our Debian Template VM

Although Python 3 is the current version, many applications and scripts are still depending on Python 2.

Also Python 2 is the standard installed version on Debian 8 Jessie

> python -V
Python 2.7.9

To make things clearer one could use the python2 command, to have a look at the available commands:

> ls -la /usr/bin | grep -ie python
-rwxr-xr-x  1 root   root       1056 Mar 16  2015 dh_python2
lrwxrwxrwx  1 root   root         23 Jun 29  2016 pdb2.7 -> ../lib/python2.7/pdb.py
lrwxrwxrwx  1 root   root          9 Mar 16  2015 python -> python2.7
lrwxrwxrwx  1 root   root          9 Mar 16  2015 python2 -> python2.7
-rwxr-xr-x  1 root   root    3781768 Jun 29  2016 python2.7
lrwxrwxrwx  1 root   root         29 Mar 16  2015 pyversions -> ../share/python/pyversions.py

It seems that, contrary to most other distributions, having Python (2.7) installed on Debian doesn't imply pip being available, let's install it:

PIP (2)

> sudo apt-get install python-pip python-dev build-essential
> pip -V
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)

Python 3 + PIP (3)

> sudo apt-get install python3 python3-dev python3-pip

We now have the Python and pip versions available:

> python -V
Python 2.7.9
> pip -V
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
> python2 -V
Python 2.7.9
> pip2 -V
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
> python3 -V
Python 3.4.2
> pip3 -V
pip 1.5.6 from /usr/lib/python3/dist-packages (python 3.4)

Notice that python and python2 are the same, this is also true for pip and pip2.

Virtual Environments are used to isolate project python versions and package dependencies.

As stated before, we'lll install virtualenv for User only in order to allow coexistence of Python2 and Python3:

> pip install --user virtualenv
> nano ~/.bashrc
ADD:
alias virtualenv2='~/.local/bin/virtualenv'

> source .bashrc
> virtualenv2 --version
15.1.0

To create a new directory for a virtualenv, and then activate it:

> virtualenv2 env_name
> source env_name/bin/activate
> cd env_name

To do the same in an existing directory, first move to this location and:

> cd /path/to/my/env
> virtualenv2 .
> source ./bin/activate