J'ai fait pipis 2018-05-17 | Blog de Nicolas Karolak

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)"

Un commentaire ? Démarrez une discussion dans la liste de diffusion en envoyant un email à ~nka/blog@lists.sr.ht. Veuillez respecter l'etiquette de la liste de diffusion.

Articles de blogs que je lis Généré par openring

I will be moving to the Netherlands

I had been planning a move to the Netherlands for a while, at least until a large COVID-shaped wrench was thrown into the gears. However, I was fully vaccinated by early April, and there are signs of the border opening up now, so my plans have been slowly ge…

via Drew DeVault's blog 2021-06-07

#37 : Un autre regard sur la politique climatique de Joe Biden

Dans le concert de louanges qui entourent le début de mandat de Joe Biden, j’aimerais présenter ici un autre point de vue, plus critique, concernant sa politique climatique. Son plan pour le climat a été largement salué, y compris par les associations env…

via Nourritures terrestres 2021-06-06

Covidrome

Une brise soutenue et tiède balaie le grand parking et ébouriffe nos cheveux, promesse d’une belle journée et d’une efficace dissipation des miasmes. Nous sommes en terrain inconnu et nous dirigeons instinctivement vers ce qui pourrait être l’entrée princ…

via Le Monolecte 2021-05-24