Table des matières

Python (et Debian)

Nous utilisons de plus en plus python dans le projet Khaganat, y compris sur les serveurs.

Je vais vous laisser expliquer pourquoi python c'est trop bien. Et pourquoi on choisit de privilégier ce langage (parce qu'il n'y a pas que lui qui est bien, dans l'absolu).

Cependant, l'utilisation de python peut être un peu déroutante pour des débutantes, d'autant que certaines choses changent d'un OS à l'autre et d'une distribution à l'autre.

TODO : lister vers les liens expliquant

  • les bonnes pratiques python
  • comment packager proprement python afin de l'utiliser partout
  • comment faire fonctionner un programme python même si on n'a pas la bonne version

Quelques paquets pour démarrer

La version actuelle1) de python est la 3.6.5. Utiliser une version antérieure est dommage.

Pourtant certains systèmes, dont Debian, proposent par défaut python 2.72).

Il faut donc installer python3, ainsi que pipenv, qui permet d'installer et de gérer les paquets python avec la bonne version.

Sur Debian stable, pipenv n'est pas dans les paquets, il faut passer par pip.

sudo apt install python3 python3-pip python3-requests
sudo pip3 install pipenv
pipenv --three # Configure pipenv pour utiliser python 3 par défaut

En cas de souci avec pip3

Certaines distributions/installations peuvent avoir du mal avec pip en commande simple. Dans ce cas les commandes suivantes peuvent aider à installer pipenv. Elles doivent être réalisées avec l'utisateur courant, pas avec sudo ou root !

python -m pip install pip --upgrade --user
python -m pip install pipenv --user

Avec Debian et python 2, il faudra remplacer la simple commande pipenv par python -m pipenv. Pourquoi faire simple ?

Par contre, suivant votre version, pip3 install package peut très bien marcher. De même pipenv –three permet ensuite de se servir de pipenv directement (valable sous Stretch).

Utiliser pipenv

Cette partie demande à être relu et complétée par quelqu'un qui maitrise pipenv et de façon plus générale, les environnements virtuels en python.

Créez un dossier, allez dedans, et déclarez que ce dossier va aussi stocker l'environnement virtuel dans le dossier en question, au lieu de le mettre dans le dossier par défaut du système (~/.local/share/virtualenvs/, ça devient vite compliqué de s'y retrouver avec plusieurs projets)

mkdir dossier 
cd dossier
PIPENV_VENV_IN_PROJECT=1

Puis installer ce que vous avez besoin

pipenv install django

Pour agir dans l'environnement virtuel, le plus simple est de passer dans un shell “pipenv” pipenv shell

Toutes les commandes Unix habituelles sont disponibles, mais tout ce qui concerne python sera de la version et des paquets installés via ce pipenv ; cela permet d'avoir python2 qui tourne pour le système, et python 3 par défaut dans cet environnement virtuel.

Si on souhaite lancer uniquement une commande spécifique, on peut utiliser

pipenv run

Par exemple

pipenv run ./manage.py runserver

S'il y a besoin de virer “proprement” un environnement virtuel, il suffit de détruire le dossier de sa configuration, soit avec la commance pipenv –rm soit en allant chercher le dit dossier : rm -R ~/.local/share/virtualenvs/mon_environnement.

Pour mettre à jour les paquets d'un environnement virtuel, il suffit simplement de faire :

pipenv update

Sources

1)
16 juin 2018
2)
cela est inhérent au “modèle” Debian : les versions stables de Debian n'intègrent aucune nouvelle version d'un logiciel, uniquement des mises à jour de sécurité