J'ai fait pipis

17 mai 2018

Commençons par dire que je suis assez fière de mon titre :-D

Continuons en expliquant ce qu’est pipis.

Que’est-ce que pipis ?

« pipis » signifie « pip isolated » \

je trouvais le nom marrant, mais pipi était déjà pris…

Pipis est un wrapper autour de venv et pip qui installe les paquets python dans des venvs séparés. Ça permet d’éviter de potentiellement pourrir votre système avec les paquets que vous installez, et ça permet également d’éviter les problèmes de conflit de dépendances entre les différents paquets.

Pour chaque paquet installé ça lui créer un venv dans ~/.local/venvs/, dans lequel pip est mis à jour vers la dernière version, puis le paquet et ses dépendances sont installées. Et pour terminer ça créer un lien symbolique des exécutables du paquet dans ~/.local/bin/ (qui doit être présent dans votre PATH pour que ça ai un intérêt).

Pourquoi ne pas utiliser pipsi ?

Pipsi (echo pipis | sed 's/is/si/') existe déjà et fait déjà le job, pourriez-vous dire. En effet, c’est d’ailleurs de cet outil que je me suis inspiré. On peut même dire que pipis est une réécriture de pipsi, simplement je me suis cantonné à Linux, Python 3, et venv à la place de virtualenv.

Pipsi de son côté semble supporter Windows, personnellement je me fiche de Windows, je ne l’utilise pas, et de toute manière il y a maintenant le WSL intégré qui permet d’avoir un vrai shell Linux dans Windows. MacOS ne devrait pas poser de problème, mais je n’en ai pas sous la main pour tester.

Python 2 c’est bientôt déprécié, je ne vois pas l’intérêt de tenter de maintenir une compatibilité avec. Autant le pousser vers la sortie.

Pour ce qui est de virtualenv, le truc qui me dérange c’est qu’il copie le binaire de Python dans l’environnement. Ce qui fait qu’on se retrouver avec un binaire Python qui ne sera jamais mis à jour. venv à l’élégance de simplement faire un lien symbolique, du coup quand la distribution Python est mise à jour dans le système, c’est à jour dans l’environnement virtuel aussi. Il reste que pip est copié statiquement, donc on retrouve le même problème, c’est pourquoi je me le met à jour en premier à chaque fois.

Comment l’installer ?

python3 -m venv ~/.local/venvs/pipis
source ~/.local/venvs/pipis/bin/activate
pip install -U pip
pip install pipis
deactivate
ln -s ~/.local/venvs/pipis/bin/pipis ~/.local/bin/pipis

Comment ça s’utilise ?

Pour ça je vous laisse aller voir la page du projet sur PyPI, mais voilà tout de même un aperçu de ce que ça peut faire.

Bonus

Et en bonus, rien que pour vous, vu que ça utilise la bibliothèque Click il est possible d’activer la complétion dans le terminal. Il suffit d’ajouter ça dans votre .bashrc :

eval "$(_PIPIS_COMPLETE=source pipis)"

Commenter
Articles de blogs que je lis

40 ans de GNU

40 ans de GNU Richard Stallman ne voulait pas changer le monde. Il ne voulait pas se battre contre les moulins à vent. Il ne voulait pas réinventer la roue. Richard Stallman voulait simplement retrouver ses amis, sa communauté. Pour ce jeune homme barbu et …
Ploum.net · 27 Sep 2023

La blog­chain

Avec les réseaux sociaux, les petits espaces person­nels inter­con­nec­tés qu’é­taient les blogs ont peu à peu disparu du paysage. Il en reste, mais les liens ne sont plus aussi forts. À la grande époque il était fréquent d’avoir des blogroll. sur un coin de c…
Carnet de notes · 8 Sep 2023

#63 : Comment parler du vivant pour mieux l’appréhender

Baptiste Morizot est philosophe, maître de conférences à Aix-Marseille Université et auteur de plusieurs ouvrages sur les relations entre l'humain et le reste du vivant (Les Diplomates, Sur la piste animale, Manières d'être vivant…). En avril dern…
Nourritures terrestres · 13 Aug 2023