Documentation : https://pipx.pypa.io
Code source : https://github.com/pypa/pipx
À titre de comparaison avec d'autres outils, y compris PIPSI, voir la comparaison avec d'autres outils.
Avertissement
Il n'est pas recommandé d'installer pipx
via pipx
. Si vous souhaitez le faire de toute façon, jetez un œil au projet pipx-in-pipx
et lisez les limites là-bas.
brew install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Mettre à niveau PIPX avec brew update && brew upgrade pipx
.
sudo apt update
sudo apt install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo dnf install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
sudo pacman -S python-pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
pip
sur d'autres distributions: python3 -m pip install --user pipx
python3 -m pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Mettre à niveau PIPX avec python3 -m pip install --user --upgrade pipx
.
scoop install pipx
pipx ensurepath
Mettre à niveau PIPX avec scoop update pipx
.
# If you installed python using Microsoft Store, replace `py` with `python3` in the next line.
py -m pip install --user pipx
Il est possible (même très probablement) les termes ci-dessus avec un avertissement semblable à ceci:
WARNING: The script pipx.exe is installed in `<USER folder>AppDataRoamingPythonPython3xScripts` which is not on PATH
Si c'est le cas, accédez au dossier mentionné, vous permettant d'exécuter directement l'exécutable PIPX. Entrez la ligne suivante (même si vous n'avez pas obtenu l'avertissement):
.pipx.exe ensurepath
Cela ajoutera à la fois le chemin mentionné ci-dessus et le dossier %USERPROFILE%.localbin
à votre chemin de recherche. Redémarrez votre session de terminal et vérifiez que pipx
s'exécute.
Mettre à niveau PIPX avec py -m pip install --user --upgrade pipx
.
Vous pouvez également utiliser PIPX sans l'installer. Le Zipapp peut être téléchargé à partir des sorties GitHub et vous pouvez l'invoquer avec un interprète Python 3.8+:
python pipx.pyz ensurepath
PIPX a un support pré-engagé.
Les compléments de shell sont disponibles en suivant les instructions imprimées avec cette commande:
pipx completions
Pour plus de détails, consultez les instructions d'installation.
pipx
? PIPX est un outil pour vous aider à installer et à exécuter les applications d'utilisateurs finaux écrites en python. Il est à peu près similaire à MacOS's brew
, JavaScript's NPX et à Linux's apt
.
Il est étroitement lié à PIP. En fait, il utilise PIP, mais se concentre sur l'installation et la gestion des packages Python qui peuvent être exécutés à partir de la ligne de commande directement en tant qu'applications.
PIP est un programme d'installation de package à usage général pour les bibliothèques et les applications sans isolement environnemental. PIPX est conçu spécifiquement pour l'installation des applications, car il ajoute de l'isolement mais rend toujours les applications disponibles dans votre shell: PIPX crée un environnement isolé pour chaque application et ses packages associés.
Pipx n'en est pas expédié avec PIP, mais l'installer est souvent une partie importante de l'amorçage de votre système.
pipx
installe-t-il des applications?Par défaut, Pipx utilise le même index de package que PIP, PYPI. PIPX peut également installer à partir de toutes les autres sources PIP peut, comme un répertoire local, une roue, une URL GIT, etc.
Python et PYPI permettent aux développeurs de distribuer du code avec "Points de saisie de script de console". Ces points d'entrée permettent aux utilisateurs d'appeler dans le code Python à partir de la ligne de commande, agissant efficacement comme des applications autonomes.
PIPX est un outil pour installer et exécuter l'un de ces milliers de packages contenant des applications de manière sûre, pratique et fiable. D'une certaine manière, il transforme l'index de package Python (PYPI) en un grand magasin d'applications pour les applications Python. Tous les packages Python n'ont pas de points d'entrée, mais beaucoup le font.
Si vous souhaitez rendre votre package compatible avec PIPX, il vous suffit d'ajouter un point d'entrée de scripts de console. Si vous êtes un utilisateur de poésie, utilisez ces instructions. Ou, si vous utilisez Hatch, essayez ceci.
pipx
vous permet de
install
. Cela ne garantit aucun conflit de dépendance et désinstallez propre!run
Mieux encore, PIPX s'exécute avec des autorisations utilisateur régulières, sans jamais appeler sudo pip install
(vous ne faites pas cela, n'est-ce pas??).
pipx
Vous pouvez installer une application à l'échelle mondiale en exécutant
pipx install PACKAGE
Cela crée automatiquement un environnement virtuel, installe le package et ajoute les applications (points d'entrée) associées du package à un emplacement sur votre PATH
. Par exemple, pipx install pycowsay
rend la commande pycowsay
disponible à l'échelle mondiale, mais sandbox le package Pycowsay dans son propre environnement virtuel. Pipx n'a jamais besoin de courir en tant que sudo pour le faire.
Exemple:
>> pipx install pycowsay
installed package pycowsay 2.0.3, Python 3.10.3
These apps are now globally available
- pycowsay
done! ?
>> pipx list
venvs are in /home/user/.local/share/pipx/venvs
apps are exposed on your $PATH at /home/user/.local/bin
package pycowsay 2.0.3, Python 3.10.3
- pycowsay
# Now you can run pycowsay from anywhere
>> pycowsay mooo
____
< mooo >
====
^__^
(oo)_______
(__) )/
||----w |
|| ||
Vous pouvez également installer à partir d'un référentiel GIT. Ici, black
est utilisé comme exemple.
pipx install git+https://github.com/psf/black.git
pipx install git+https://github.com/psf/black.git@branch # branch of your choice
pipx install git+https://github.com/psf/black.git@ce14fa8b497bae2b50ec48b3bd7022573a59cdb1 # git hash
pipx install https://github.com/psf/black/archive/18.9b0.zip # install a release
La syntaxe PIP avec egg
doit être utilisée lors de l'installation d'extras:
pipx install "git+https://github.com/psf/black.git#egg=black[jupyter]"
Si une application installée par PIPX nécessite des packages supplémentaires, vous pouvez les ajouter avec PIPX Inject. Par exemple, si vous avez installé ipython
et que vous souhaitez y ajouter le package matplotlib
, vous utiliseriez:
pipx inject ipython matplotlib
Vous pouvez injecter plusieurs packages en les spécifiant tous sur la ligne de commande, ou en les répertoriant dans un fichier texte, avec un package par ligne ou une combinaison. Par exemple:
pipx inject ipython matplotlib pandas
# or:
pipx inject ipython -r useful-packages.txt
Ceci est une alternative à pipx install
.
pipx run
télécharge et exécute les "applications" Python mentionnées ci-dessus dans un environnement unique et temporaire, laissant votre système intact par la suite.
Cela peut être pratique lorsque vous avez besoin d'exécuter la dernière version d'une application, mais je ne veux pas nécessairement qu'il soit installé sur votre ordinateur.
Vous voudrez peut-être le faire lorsque vous initialisez un nouveau projet et que vous souhaitez configurer la bonne structure de répertoire, lorsque vous souhaitez afficher le texte d'aide d'une application, ou si vous souhaitez simplement exécuter une application dans un cas ponctuel Et laissez votre système intact par la suite.
Par exemple, le billet de blog Comment configurer un projet Python parfait utilise pipx run
pour lancer un nouveau projet avec Cookietter, un outil qui crée des projets à partir de modèles de projet.
Un bel avantage secondaire est que vous n'avez pas à vous rappeler de mettre à niveau l'application, car pipx run
exécutera automatiquement une version récente pour vous.
D'accord, voyons à quoi cela ressemble dans la pratique!
pipx run APP [ARGS...]
Cela installera le package dans un répertoire isolé et temporaire et invoquera l'application. Essayez-le:
> pipx run pycowsay moo
---
< moo >
---
^__^
(oo)_______
(__) )/
||----w |
|| ||
Notez que vous n'avez pas besoin d'exécuter des commandes d'installation pour exécuter l'application .
Tout argument après le nom de la demande sera transmis directement à la demande:
> pipx run pycowsay these arguments are all passed to pycowsay!
-------------------------------------------
< these arguments are all passed to pycowsay! >
-------------------------------------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
Parfois, PIPX peut consommer des arguments prévus pour la demande:
> pipx run pycowsay --py
usage: pipx run [-h] [--no-cache] [--pypackages] [--spec SPEC] [--verbose] [--python PYTHON]
[--system-site-packages] [--index-url INDEX_URL] [--editable] [--pip-args PIP_ARGS]
app ...
pipx run: error: ambiguous option: --py could match --pypackages, --python
Pour éviter ce Double Dash put --
avant l'application. Il fera de PIPX pour transmettre les arguments au droit mot pour la demande:
> pipx run -- pycowsay --py
----
< --py >
----
^__^
(oo)_______
(__) )/
||----w |
|| ||
La réévaluation de la même application est rapide car PIPX cache des environnements virtuels sur une base par application. Les caches ne durent que quelques jours, et lorsqu'ils expireront, Pipx utilisera à nouveau la dernière version du package. De cette façon, vous pouvez être sûr que vous exécutez toujours une nouvelle version du package sans avoir à mettre à niveau manuellement.
Si le nom de l'application ne correspond pas au nom du package, vous pouvez utiliser l'argument --spec
pour spécifier le nom PACKAGE
et fournir l' APP
pour s'exécuter séparément:
pipx run --spec PACKAGE APP
Par exemple, le package Esptool ne fournit pas un exécutable avec le même nom:
>> pipx run esptool
'esptool' executable script not found in package 'esptool'.
Available executable scripts:
esp_rfc2217_server.py - usage: 'pipx run --spec esptool esp_rfc2217_server.py [arguments?]'
espefuse.py - usage: 'pipx run --spec esptool espefuse.py [arguments?]'
espsecure.py - usage: 'pipx run --spec esptool espsecure.py [arguments?]'
esptool.py - usage: 'pipx run --spec esptool esptool.py [arguments?]'
Vous pouvez à la place exécuter les exécutables que ce package fournit en utilisant --spec
:
pipx run --spec esptool esp_rfc2217_server.py
pipx run --spec esptool espefuse.py
pipx run --spec esptool espsecure.py
pipx run --spec esptool esptool.py
Notez que l'extension .py
n'est pas quelque chose que vous ajoutez au nom exécutable. Il fait partie du nom exécutable, tel que fourni par le package. Cela peut être n'importe quoi. Par exemple, lorsque vous travaillez avec le package Pymodbus:
>> pipx run pymodbus[repl]
'pymodbus' executable script not found in package 'pymodbus'.
Available executable scripts:
pymodbus.console - usage: 'pipx run --spec pymodbus pymodbus.console [arguments?]'
pymodbus.server - usage: 'pipx run --spec pymodbus pymodbus.server [arguments?]'
pymodbus.simulator - usage: 'pipx run --spec pymodbus pymodbus.simulator [arguments?]'
Vous pouvez exécuter les exécutables comme ceci:
pipx run --spec pymodbus[repl] pymodbus.console
pipx run --spec pymodbus[repl] pymodbus.server
pipx run --spec pymodbus[repl] pymodbus.simulator
L'argument PACKAGE
ci-dessus est en fait un spécificateur d'exigence. Par conséquent, vous pouvez également spécifier des versions spécifiques, des gammes de versions ou des extras. Par exemple:
pipx run mpremote==1.20.0
pipx run --spec esptool==4.6.2 esptool.py
pipx run --spec 'esptool>=4.5' esptool.py
pipx run --spec 'esptool >= 4.5' esptool.py
Notez que certains spécificateurs d'exigences doivent être enfermés en guillemets ou échappés.
Vous pouvez également courir à partir d'un référentiel GIT. Ici, black
est utilisé comme exemple.
pipx run --spec git+https://github.com/psf/black.git black
pipx run --spec git+https://github.com/psf/black.git@branch black # branch of your choice
pipx run --spec git+https://github.com/psf/black.git@ce14fa8b497bae2b50ec48b3bd7022573a59cdb1 black # git hash
pipx run --spec https://github.com/psf/black/archive/18.9b0.zip black # install a release
Vous pouvez également exécuter des fichiers .py directement.
pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
pipx is working!
C'est ça! Ce sont les commandes les plus importantes que pipx
propose. Pour voir toute la documentation de Pipx, exécutez pipx --help
help ou voyez les documents.
Pipx a été inspiré par Pipsi et NPX. Il a été créé par Chad Smith et a eu beaucoup d'aide de contributeurs. Le logo a été créé par @irishmorales.
Pipx est maintenu par une équipe de bénévoles (par ordre alphabétique)
Les problèmes et les demandes de traction sont certainement les bienvenus! Consultez la contribution pour commencer. Tous ceux qui interagissent avec le projet PIPX via CodeBase, Issue Tracker, Chat Rooms ou autrement devraient suivre le code de conduite PSF.