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
- http://sametmax.com/pipenv-solution-moderne-pour-remplacer-pip-et-virtualenv/ : Sam et Max expliquent pourquoi pipenv c'est bien et comment l'installer sur Debian.
- https://pipenv.readthedocs.io/en/ : la documentation de pipenv