Actuellement, la version 2.7 de Python n'est pas encore supporté de manière officielle sur l'hébergeur Alwaysdata (que j'utilise pour héberger 85mm.fr par exemple).
Malgré tout, l'executable est disponible sur les machines d'alwaysdata, nous allons donc voir maintenant comment installer pip, virtualenv et quelques autres modules.
Pour installer pip nous allons commencer par la récupérer sur le site du projet avec wget :
ssh% wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
Nous allons ensuite utiliser l'executable de python 2.7 pour faire l'installation :
ssh% /usr/bin/python2.7 get-pip.py --user
On utilise l'option --user afin que pip soit installé en local pour l'utilisateur courant et non pas au niveau de la machine (car nous n'avons pas les droits sur les dossiers système de la machine). L'installation aura donc lieu dans le dossier ~/.local/.
À partir de maintenant, pour installer un module nous utiliserons donc :
ssh% ./.local/bin/pip install <nom-du-module>
Nous pouvons par exemple installer virtualenv afin de gérer les dépendances de chaque projet de manière plus précise. Il faut bien sûr bien penser à toujours utiliser l'option --user.
ssh% ./.local/bin/pip install virtualenv --user
Le mieux est maintenant d'utiliser un environnement virtuel pour se faciliter la tâche. Nous allons donc créer un environnement avec la commande suivante :
ssh% ./.local/bin/virtualenv env1
Et l'on pourra maintenant facilement installer des modules pour cette environnement de manière très facile :
ssh% env1/bin/pip install Django==1.8.2 flup
Sur la version 2.7 de python, il n'y a aucun modules installés par défaut, il faut donc bien penser à installer les modules utiles pour que votre projet fonctionne sur Alwaysdata, comme par exemple flup, Pillow ou pytz.
Il suffit ensuite de modifier votre fichier FCGI pour lui indiquer d'utiliser virtualenv crée. Pour ce fire il faut ajouter dans le fichier les lignes suivantes, juste après les import :
# setup the virtualenv
venv = '/home/mon-utilisateur/env1/bin/activate_this.py'
execfile(venv, dict(__file__=venv))
Pour finir, on relance les processus depuis l'administration d'AlwaysData, et c'est bon, votre projet utilise maintenant Python 2.7. Et vous pouvez donc maintenant utiliser Django 1.7 ou 1.8 !
En espérant que ça vous aura été utile.