Dokumentation : https://pipx.pypa.io
Quellcode : https://github.com/pypa/pipx
Zum Vergleich zu anderen Tools, einschließlich Pipsi, siehe Vergleich mit anderen Tools.
Warnung
Es wird nicht empfohlen, pipx
über pipx
zu installieren. Wenn Sie dies trotzdem tun möchten, schauen Sie sich das pipx-in-pipx
-Projekt an und lesen Sie die Einschränkungen dort.
brew install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Upgrade PIPX mit 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
auf anderen Verteilungen: python3 -m pip install --user pipx
python3 -m pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Upgrade PIPX mit python3 -m pip install --user --upgrade pipx
.
scoop install pipx
pipx ensurepath
Upgrade PIPX mit scoop update pipx
upgraden.
# If you installed python using Microsoft Store, replace `py` with `python3` in the next line.
py -m pip install --user pipx
Es ist möglich (sogar höchstwahrscheinlich). Die oben genannten endet mit einer Warnung, die ähnlich wie folgt aussieht:
WARNING: The script pipx.exe is installed in `<USER folder>AppDataRoamingPythonPython3xScripts` which is not on PATH
Wenn ja, gehen Sie zum genannten Ordner, sodass Sie die ausführbare Datei PIPX direkt ausführen können. Geben Sie die folgende Zeile ein (auch wenn Sie die Warnung nicht erhalten haben):
.pipx.exe ensurepath
Dadurch werden sowohl den oben genannten Pfad als auch den %USERPROFILE%.localbin
zu Ihrem Suchpfad hinzugefügt. Starten Sie Ihre Terminalsitzung neu und überprüfen Sie, wie pipx
ausgeführt wird.
Upgrade PIPX mit py -m pip install --user --upgrade pipx
.
Sie können PIPX auch verwenden, ohne es zu installieren. Der ZipApp kann von Github -Releases heruntergeladen werden und Sie können ihn mit einem Python 3.8+ Interpreter aufrufen:
python pipx.pyz ensurepath
PIPX hat Unterstützung vor dem Kommunikation.
Shell -Abschlüsse sind verfügbar, indem die mit diesem Befehl gedruckten Anweisungen folgen:
pipx completions
Weitere Informationen finden Sie in den Installationsanweisungen.
pipx
? PIPX ist ein Tool, mit dem Sie Endbenutzeranwendungen in Python installieren und ausführen können. Es ähnelt grob zu MacOS ' brew
, JavaScripts NPX und Linux's apt
.
Es ist eng mit PIP verwandt. Tatsächlich verwendet es PIP, konzentriert sich jedoch auf die Installation und Verwaltung von Python -Paketen, die direkt als Anwendungen aus der Befehlszeile ausgeführt werden können.
PIP ist ein allgemeiner Paket-Installationsprogramm für Bibliotheken und Apps ohne Isolation ohne Umgebung. PIPX wird speziell für die Anwendungsinstallation erstellt, da es die Isolation hinzufügt. Die in Ihrer Shell verfügbaren Apps erstellt jedoch eine isolierte Umgebung für jede Anwendung und ihre zugehörigen Pakete.
PIPX versendet nicht mit PIP, aber die Installation ist oft ein wichtiger Bestandteil des Bootstrapping Ihres Systems.
pipx
Apps?Standardmäßig verwendet PIPX denselben Paketindex wie PIP, PYPI. PIPX kann auch aus allen anderen Quellen installieren, wie PIP -Dose, z. B. ein lokales Verzeichnis, ein Rad, eine Git -URL usw.
Mit Python und PYPI können Entwickler Code mit "Konsolen -Skript -Einstiegspunkten" verteilen. Mit diesen Einstiegspunkten können Benutzer aus der Befehlszeile in den Python -Code anrufen und effektiv wie eigenständige Anwendungen wirken.
PIPX ist ein Werkzeug zum Installieren und Ausführen eines dieser Tausenden von anwendungshaltigen Paketen auf sichere, bequeme und zuverlässige Weise. In gewisser Weise verwandelt es den Python Package Index (PYPI) in einen großen App Store für Python -Anwendungen. Nicht alle Python -Pakete haben Einstiegspunkte, aber viele tun es.
Wenn Sie Ihr Paket mit PIPX kompatibel machen möchten, müssen Sie lediglich einen Einstiegspunkt für Konsolenskripte hinzufügen. Wenn Sie ein Gedichtbenutzer sind, verwenden Sie diese Anweisungen. Oder, wenn Sie Hatch verwenden, versuchen Sie dies.
pipx
ermöglicht es Ihnen
install
installiert sind. Dies garantiert keine Abhängigkeitskonflikte und saubere Deinstallationen!run
aus Das Beste von allen ist, dass PipX mit regelmäßigen Benutzerberechtigungen ausgeführt wird und nie sudo pip install
(Sie tun das nicht, sind Sie?
pipx
Sie können eine Anwendung weltweit durch Ausführen installieren
pipx install PACKAGE
Dadurch wird automatisch eine virtuelle Umgebung erstellt, das Paket installiert und die zugehörigen Anwendungen (Einstiegspunkte) des Pakets zu einem Ort auf Ihrem PATH
hinzugefügt. Beispielsweise stellt pipx install pycowsay
den Befehl pycowsay
global zur Verfügung, sandt jedoch das Pycowsay -Paket in seiner eigenen virtuellen Umgebung. Pipx muss nie als sudo laufen, um dies zu tun.
Beispiel:
>> 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 |
|| ||
Sie können auch aus einem Git -Repository installieren. Hier wird black
als Beispiel verwendet.
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
Die PIP -Syntax mit egg
muss bei der Installation von Extras verwendet werden:
pipx install "git+https://github.com/psf/black.git#egg=black[jupyter]"
Wenn eine von PIPX installierte Anwendung zusätzliche Pakete benötigt, können Sie sie mit PIPX -Injektion hinzufügen. Wenn Sie beispielsweise ipython
installiert haben und das matplotlib
-Paket hinzuzufügen möchten, würden Sie verwenden:
pipx inject ipython matplotlib
Sie können mehrere Pakete injizieren, indem Sie sie alle in der Befehlszeile angeben oder in einer Textdatei mit einem Paket pro Zeile oder einer Kombination auflisten. Zum Beispiel:
pipx inject ipython matplotlib pandas
# or:
pipx inject ipython -r useful-packages.txt
Dies ist eine Alternative zur pipx install
.
pipx run
Downloads und führt die oben genannten Python-Apps in einer einmaligen, vorübergehenden Umgebung aus und lässt Ihr System danach unberührt.
Dies kann praktisch sein, wenn Sie die neueste Version einer App ausführen müssen, möchten jedoch nicht unbedingt auf Ihrem Computer installiert.
Möglicherweise möchten Sie dies tun, wenn Sie ein neues Projekt initialisieren und die richtige Verzeichnisstruktur einrichten möchten, wenn Sie den Hilfegtext einer Anwendung anzeigen möchten oder wenn Sie einfach eine App in einem einmaligen Fall ausführen möchten Und lassen Sie Ihr System danach unberührt.
Zum Beispiel verwendet der Blog -Beitrag, in dem ein perfektes Python -Projekt eingerichtet wird pipx run
um ein neues Projekt mit CookieCutter zu kicken, das Projekte aus Projektvorlagen erstellt.
Ein schöner Nebeneffekt ist, dass Sie nicht daran denken müssen, die App zu aktualisieren, da pipx run
automatisch eine aktuelle Version für Sie ausführt.
Okay, mal sehen, wie das in der Praxis aussieht!
pipx run APP [ARGS...]
Dadurch wird das Paket in einem isolierten, temporären Verzeichnis installiert und die App aufgerufen. Probieren Sie es aus:
> pipx run pycowsay moo
---
< moo >
---
^__^
(oo)_______
(__) )/
||----w |
|| ||
Beachten Sie, dass Sie keine Installationsbefehle ausführen müssen, um die App auszuführen .
Alle Argumente nach dem Bewerbungsnamen werden direkt an die Anwendung übergeben:
> pipx run pycowsay these arguments are all passed to pycowsay!
-------------------------------------------
< these arguments are all passed to pycowsay! >
-------------------------------------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
Manchmal kann PIPX Argumente für die Anwendung konsumieren:
> 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
Um dies zu verhindern, stellen Sie Double Dash --
vor App. Es wird PIPX dazu bringen, die Argumente an den richtigen wörtlichen an die Anwendung weiterzuleiten:
> pipx run -- pycowsay --py
----
< --py >
----
^__^
(oo)_______
(__) )/
||----w |
|| ||
Das erneute Auftreten der gleichen App ist schnell, da PIPX virtuelle Umgebungen pro App-Basis einräumt. Die Caches dauern nur ein paar Tage, und wenn sie ablaufen, wird PipX erneut die neueste Version des Pakets verwenden. Auf diese Weise können Sie sicher sein, dass Sie immer eine neue Version des Pakets ausführen, ohne manuell aktualisieren zu müssen.
Wenn der App -Name nicht mit dem Paketnamen übereinstimmt, können Sie das Argument --spec
-Argument verwenden, um den PACKAGE
anzugeben, und der APP
zum separaten Ausführen angeben:
pipx run --spec PACKAGE APP
Beispielsweise bietet das Esptool -Paket keine ausführbare Datei mit demselben Namen:
>> 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?]'
Sie können stattdessen die ausführbaren Ausführungen ausführen, die dieses Paket mit --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
Beachten Sie, dass die .py
-Erweiterung nicht etwas ist, das Sie dem ausführbaren Namen anhängen. Es ist Teil des ausführbaren Namens, wie vom Paket bereitgestellt. Das kann alles sein. Zum Beispiel bei der Arbeit mit dem Pymodbus -Paket:
>> 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?]'
Sie können die ausführbaren Funktionen wie diese ausführen:
pipx run --spec pymodbus[repl] pymodbus.console
pipx run --spec pymodbus[repl] pymodbus.server
pipx run --spec pymodbus[repl] pymodbus.simulator
Das obige PACKAGE
ist eigentlich ein Anforderungspezifizierer. Daher können Sie auch bestimmte Versionen, Versionsbereiche oder Extras angeben. Zum Beispiel:
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
Beachten Sie, dass einige Anforderungspezifizierer in Zitate eingeschlossen oder entkommen müssen.
Sie können auch aus einem Git -Repository auslaufen. Hier wird black
als Beispiel verwendet.
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
Sie können auch .py -Dateien auch direkt ausführen.
pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
pipx is working!
Das war's! Dies sind die wichtigsten Befehle pipx
. Um die gesamte Dokumentation von PIPX zu sehen, rennen Sie pipx --help
oder die Dokumente.
PIPX wurde von Pipsi und NPX inspiriert. Es wurde von Chad Smith geschaffen und hatte viel Hilfe von Mitwirkenden. Das Logo wurde von @irishMorales erstellt.
PIPX wird von einem Team von Freiwilligen unterhalten (in alphabetischer Reihenfolge)
Probleme und Zuganfragen sind auf jeden Fall willkommen! Schauen Sie sich einen Beitrag zum Einstieg an. Jeder, der mit dem PIPX -Projekt über Codebasis, Ausgabebour, Chatrooms oder auf andere Weise interagiert, wird dem PSF -Verhaltenscode erwartet.