Documentación : https://pipx.pypa.io
Código fuente : https://github.com/pypa/pipx
Para comparación con otras herramientas, incluida PIPSI, vea la comparación con otras herramientas.
Advertencia
No se recomienda instalar pipx
a través de pipx
. Si desea hacer esto de todos modos, eche un vistazo al proyecto pipx-in-pipx
y lea sobre las limitaciones allí.
brew install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Actualice PIPX con 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
en otras distribuciones: python3 -m pip install --user pipx
python3 -m pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
Actualice PIPX con python3 -m pip install --user --upgrade pipx
.
scoop install pipx
pipx ensurepath
Actualice PIPX con scoop update pipx
.
# If you installed python using Microsoft Store, replace `py` with `python3` in the next line.
py -m pip install --user pipx
Es posible (incluso lo más probable) de los acabados anteriores con una advertencia que se ve similar a esto:
WARNING: The script pipx.exe is installed in `<USER folder>AppDataRoamingPythonPython3xScripts` which is not on PATH
Si es así, vaya a la carpeta mencionada, lo que le permite ejecutar el ejecutable PIPX directamente. Ingrese la siguiente línea (incluso si no recibió la advertencia):
.pipx.exe ensurepath
Esto agregará tanto la ruta mencionada anteriormente como la carpeta %USERPROFILE%.localbin
a su ruta de búsqueda. Reinicie su sesión de terminal y verifique pipx
se ejecute.
Actualice PIPX con py -m pip install --user --upgrade pipx
.
También puede usar PIPX sin instalarlo. El ZipApp se puede descargar de los lanzamientos de GitHub y puede invocarlo con un intérprete Python 3.8+:
python pipx.pyz ensurepath
PIPX tiene soporte previo al compromiso.
Las terminaciones de shell están disponibles siguiendo las instrucciones impresas con este comando:
pipx completions
Para obtener más detalles, consulte las instrucciones de instalación.
pipx
? PIPX es una herramienta para ayudarlo a instalar y ejecutar aplicaciones de usuario final escritas en Python. Es más o menos similar a brew
de MacOS, el NPX de JavaScript y apt
de Linux.
Está estrechamente relacionado con PIP. De hecho, utiliza PIP, pero se centra en instalar y administrar paquetes de Python que se pueden ejecutar desde la línea de comando directamente como aplicaciones.
PIP es un instalador de paquetes de propósito general para bibliotecas y aplicaciones sin aislamiento de entorno. PIPX está hecho específicamente para la instalación de la aplicación, ya que agrega aislamiento, pero aún hace que las aplicaciones estén disponibles en su shell: PIPX crea un entorno aislado para cada aplicación y sus paquetes asociados.
PIPX no se envía con PIP, pero la instalación a menudo es una parte importante de Bootstrapping Your System.
pipx
aplicaciones?Por defecto, PIPX usa el mismo índice de paquete que PIP, PYPI. PIPX también puede instalar desde todas las demás fuentes que PIP puede, como un directorio local, rueda, URL GIT, etc.
Python y Pypi permiten a los desarrolladores distribuir código con "Puntos de entrada de script de consola". Estos puntos de entrada permiten a los usuarios llamar al código de Python desde la línea de comandos, actuando efectivamente como aplicaciones independientes.
PIPX es una herramienta para instalar y ejecutar cualquiera de estos miles de paquetes que contienen aplicaciones de una manera segura, conveniente y confiable. En cierto modo, convierte el índice de paquetes de Python (PYPI) en una gran tienda de aplicaciones para aplicaciones de Python. No todos los paquetes de Python tienen puntos de entrada, pero muchos sí.
Si desea que su paquete sea compatible con PIPX, todo lo que necesita hacer es agregar un punto de entrada de Scripts de consola. Si eres un usuario de poesía, usa estas instrucciones. O, si estás usando Hatch, prueba esto.
pipx
le permite
install
. ¡Esto no garantiza conflictos de dependencia y desinstalaciones limpias!run
Lo mejor de todo es que PIPX se ejecuta con permisos regulares de los usuarios, nunca llame sudo pip install
(no está haciendo eso, ¿verdad?).
pipx
Puede instalar globalmente una aplicación ejecutando
pipx install PACKAGE
Esto crea automáticamente un entorno virtual, instala el paquete y agrega las aplicaciones asociadas del paquete (puntos de entrada) a una ubicación en su PATH
. Por ejemplo, pipx install pycowsay
hace que el comando pycowsay
esté disponible a nivel mundial, pero sandboxes el paquete Pycowsay en su propio entorno virtual. Pipx nunca necesita correr como sudo para hacer esto.
Ejemplo:
>> 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 |
|| ||
También puede instalar desde un repositorio Git. Aquí, black
se usa como ejemplo.
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 sintaxis PIP con egg
debe usarse al instalar extras:
pipx install "git+https://github.com/psf/black.git#egg=black[jupyter]"
Si una aplicación instalada por PIPX requiere paquetes adicionales, puede agregarlos con Pipx inyect. Por ejemplo, si tiene instalado ipython
y desea agregarle el paquete matplotlib
, usaría:
pipx inject ipython matplotlib
Puede inyectar múltiples paquetes especificándolos todos en la línea de comandos o enumerándolos en un archivo de texto, con un paquete por línea o una combinación. Por ejemplo:
pipx inject ipython matplotlib pandas
# or:
pipx inject ipython -r useful-packages.txt
Esta es una alternativa a pipx install
.
pipx run
descargas y ejecuta las "aplicaciones" de Python mencionadas anteriormente en un entorno temporal único, dejando su sistema intacto después.
Esto puede ser útil cuando necesite ejecutar la última versión de una aplicación, pero no necesariamente quiere que la instale en su computadora.
Es posible que desee hacer esto cuando inicialice un nuevo proyecto y desee configurar la estructura de directorio correcta, cuando desee ver el texto de ayuda de una aplicación, o si simplemente desea ejecutar una aplicación en un caso único. y deje su sistema intacto después.
Por ejemplo, la publicación de blog Cómo configurar un proyecto Python perfecto utiliza pipx run
para iniciar un nuevo proyecto con Cookiecutter, una herramienta que crea proyectos de las plantillas de proyectos.
Un buen beneficio paralelo es que no tiene que recordar actualizar la aplicación ya que pipx run
ejecutará automáticamente una versión reciente para usted.
Bien, ¡veamos cómo se ve esto en la práctica!
pipx run APP [ARGS...]
Esto instalará el paquete en un directorio temporal aislado e invocará la aplicación. Probar:
> pipx run pycowsay moo
---
< moo >
---
^__^
(oo)_______
(__) )/
||----w |
|| ||
Tenga en cuenta que no necesita ejecutar ningún comando de instalación para ejecutar la aplicación .
Cualquier argumento después del nombre de la aplicación se transmitirá directamente a la solicitud:
> pipx run pycowsay these arguments are all passed to pycowsay!
-------------------------------------------
< these arguments are all passed to pycowsay! >
-------------------------------------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
A veces, PIPX puede consumir argumentos proporcionados para la aplicación:
> 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
Para evitar este Double Dash --
antes de la aplicación. Hará que PIPX reenvíe los argumentos a la derecha a la aplicación a la aplicación:
> pipx run -- pycowsay --py
----
< --py >
----
^__^
(oo)_______
(__) )/
||----w |
|| ||
Volver a ejecutar la misma aplicación es rápida porque PIPX almacena entornos virtuales por aplicación. Los cachés solo duran unos días, y cuando expiran, Pipx volverá a utilizar la última versión del paquete. De esta manera, puede estar seguro de que siempre está ejecutando una nueva versión del paquete sin tener que actualizar manualmente.
Si el nombre de la aplicación no coincide con el nombre del paquete, puede usar el argumento --spec
para especificar el nombre PACKAGE
y proporcionar la APP
para ejecutar por separado:
pipx run --spec PACKAGE APP
Por ejemplo, el paquete Esptool no proporciona un ejecutable con el mismo nombre:
>> 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?]'
En su lugar, puede ejecutar los ejecutables que este paquete proporciona utilizando --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
Tenga en cuenta que la extensión .py
no es algo que agregue al nombre ejecutable. Es parte del nombre ejecutable, según lo dispuesto por el paquete. Esto puede ser cualquier cosa. Por ejemplo, cuando se trabaja con el paquete 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?]'
Puede ejecutar los ejecutables como este:
pipx run --spec pymodbus[repl] pymodbus.console
pipx run --spec pymodbus[repl] pymodbus.server
pipx run --spec pymodbus[repl] pymodbus.simulator
El argumento PACKAGE
anterior es en realidad un especificador de requisito. Por lo tanto, también puede especificar versiones específicas, rangos de versión o extras. Por ejemplo:
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
Observe que algunos especificadores de requisitos deben estar encerrados en cotizaciones o escapadas.
También puede ejecutar desde un repositorio Git. Aquí, black
se usa como ejemplo.
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
También puede ejecutar archivos .py directamente.
pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
pipx is working!
¡Eso es todo! Esos son los comandos más importantes que ofrece pipx
. Para ver toda la documentación de Pipx, ejecute pipx --help
o vea los documentos.
Pipx se inspiró en PIPSI y NPX. Fue creado por Chad Smith y ha tenido mucha ayuda de los contribuyentes. El logotipo fue creado por @irishmorales.
Pipx es mantenido por un equipo de voluntarios (en orden alfabético)
¡Los problemas y las solicitudes de extracción son definitivamente bienvenidas! Echa un vistazo a contribuir para comenzar. Se espera que todos los que interactúen con el proyecto PIPX a través de CodeBase, Transmis Tracker, salas de chat o de otra manera sigan el código de conducta PSF.