pipsi: utilisez le package sans polluer le système pip

introduction

Je voulais utiliser flake8 pour vérifier la syntaxe des scripts Python Je ne voulais pas «installer par pip» les packages dont je n'avais pas besoin pour que mon application fonctionne. Je l'ai présenté parce qu'il y avait quelque chose qui avait l'air bien quand je l'ai cherché.

Qu'est-ce que le pipsi

mitsuhiko/pipsi

pipsi = pip script installer

What does it do? pipsi is a wrapper around virtualenv and pip which installs scripts provided by python packages into separate virtualenvs to shield them from your system and each other.

In other words: you can use pipsi to install things like pygmentize without making your system painful.

(Grosso modo) pipsi est un wrapper pour virtualenv et pip, en séparant l'environnement virtuel du système. Vous pouvez installer des packages sans polluer votre système.

pipsi installs each package into ~/.local/venvs/PKGNAME and then symlinks all new scripts into ~/.local/bin.

pipsi installe le paquet sous ~ / .local / venvs Générez un lien symbolique vers le script dans ~ / .local / bin.

introduction

environnement

Nous avons préparé un environnement Debian où Python s'exécute localement.

Fonctionnement Docker


#Télécharger l'image Python
$ docker pull python:3.5.2

#Démarrez le conteneur et exécutez bash
$ docker run -it {IMAGE ID} /bin/bash

Créez un utilisateur avec des privilèges sudo pour l'explication. (Il était nécessaire d'introduire sudo lui-même, mais je vais l'omettre)

Ajouter un utilisateur hoge


$ adduser hoge
$ gpasswd -a hoge sudo	

procédure

Exécutez les commandes curl et python selon le README.

installation pipsi


$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2805  100  2805    0     0   6466      0 --:--:-- --:--:-- --:--:--  6463
Installing pipsi
You need to have virtualenv installed to bootstrap pipsi.

J'ai eu une erreur car il n'y avait pas de virtualenv. Inévitablement, installez uniquement virtualenv avec pip. (La documentation Virtualenv indique que l'installation locale est possible, mais cela a été gênant)

Installation de virtualenv


$ sudo pip install virtualenv
$ pip list
pip (8.1.2)
setuptools (20.10.1)
virtualenv (15.0.3)

Lorsque vous avez terminé, exécutez à nouveau la commande pipsi install.

installation pipsi


$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python

L'installation est réussie, mais un avertissement s'affiche.

Warning


Warning:
  It looks like /home/hoge/.local/bin is not on your PATH so pipsi will
  not work out of the box.  To fix this problem make sure to
  add this to your .bashrc / .profile file:

  export PATH=/home/hoge/.local/bin:$PATH

Pour le faire fonctionner, ajoutez ~ / .local / bin à votre PATH. Ici, il est exécuté sur le shell, mais s'il est reflété à chaque fois que vous vous connectez Il est nécessaire de décrire dans le fichier de configuration comme indiqué.

Ajouter un CHEMIN


$ export PATH=/home/hoge/.local/bin:$PATH
$ echo $PATH
/home/hoge/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Maintenant, vous êtes prêt à partir. Installez les packages que vous souhaitez gérer à l'aide de pipsi.

Installation du package


$ pipsi install flake8
$ which flake8
/home/hoge/.local/bin/flake8

Vous pouvez voir qu'il n'est pas inclus dans le système pip.

Confirmation de pip


$ pip list
pip (8.1.2)
setuptools (20.10.1)
virtualenv (15.0.3)

Conclusion

Bien que le nombre de serveurs jetables ait augmenté et que la gestion des packages soit devenue un peu difficile. Cela semble utile lors du développement dans un environnement partagé. Même ceux qui n'écrivent pas Python peuvent l'utiliser pour gérer des outils tels que httpie et mycli.

Recommended Posts

pipsi: utilisez le package sans polluer le système pip
Installation de packages avec pip3
Utiliser pip avec MSYS2
Utiliser pip sur Windows
Installer des packages qui ne peuvent pas utiliser de pips dans Azure App Service