GNU/Linux >> Tutoriales Linux >  >> Linux

Pipenv:la herramienta de empaquetado de Python recomendada oficialmente

El otro día publicamos una guía para principiantes para administrar paquetes de Python usando PIP . En esa guía, discutimos cómo instalar pip y cómo instalar, actualizar y desinstalar paquetes de Python usando pip. También discutimos la importancia de los entornos virtuales y cómo crear un entorno virtual utilizando las herramientas venv y virtualvnv. Hoy vamos a aprender acerca de otro administrador de paquetes de Python llamado pipenv . Es la nueva herramienta Python Packaging recomendada por Python.org. Se puede usar para instalar y administrar fácilmente las dependencias de Python sin tener que crear entornos virtuales. Pipenv crea y administra automáticamente un virtualenv para sus proyectos. También agrega/elimina paquetes de su Pipfile a medida que instala/desinstala paquetes.

¿Por qué Pipenv?

Pipenv soluciona los siguientes problemas en tiempo real:

  • Ya no tiene que crear un entorno virtual. Pipenv creará automáticamente virtualenv para sus proyectos. En pocas palabras, pip y virtualenv funcionan juntos.
  • Gestionar un requirements.txt El archivo puede ser problemático, por lo que Pipenv usa el próximo Pipfile y Pipfile.lock en su lugar, que es superior para casos de uso básicos.
  • Es seguro. Los hashes se usan en todas partes, siempre. Exponga automáticamente las vulnerabilidades de seguridad.
  • Vea el gráfico de dependencia en cualquier momento.
  • Agilice el flujo de trabajo de desarrollo cargando archivos .env.

Bueno, comencemos.

Instala Pipenv, la herramienta de empaquetado de Python recomendada oficialmente

Hay muchas formas de instalar Pipenv. Veremos dos métodos recomendados oficialmente.

1. Instalando pipenv usando pip

La forma oficial recomendada es usar pip . Asegúrese de haber instalado python y pip. De lo contrario, consulte nuestra guía anterior vinculada en el primer párrafo de este artículo.

Una vez instalado pip, ejecute el siguiente comando para instalar pipenv.

$ pip install --user pipenv

Este comando instalará pipenv en el nivel de usuario (es decir, no en todo el sistema). Si pipenv no está disponible en su shell después de instalarlo, es posible que deba agregar su directorio binario de la base de usuarios a tu RUTA. Si no sabe cuál es su base de usuarios, ejecute el siguiente comando para averiguarlo:

$ python -m site --user-base

Verá una salida similar a la siguiente.

/home/sk/.local

Como puede ver en el resultado anterior, mi directorio base de usuarios es /home/sk/.local , y el directorio binario de mi base es /home/sk/.local/bin . ¿Claro? Bien. Ahora agregue esto a su RUTA. Para hacerlo, edite su ~/.profile archivo:

$ vi ~/.profile

Agregue esta línea al final:

export PATH="$HOME/.local/bin:$PATH"

Presiona ESC clave y escriba :wq para guardar y salir del archivo. Luego, ejecute el siguiente comando para aplicar los cambios.

$ source ~/.profile

Finalmente, ejecute el siguiente comando:

$ pipenv --update

Para actualizar pipenv en cualquier momento, ejecute el siguiente comando:

$ pip install --user --upgrade pipenv

2. Instalando pipenv usando pipsi

Pipsi es una poderosa herramienta que le permite instalar scripts de Python en entornos virtuales aislados.

Para instalar pipsi, ejecute:

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

Siga las instrucciones en pantalla, tendrá que actualizar su RUTA.

Una vez instalado pipsi, ejecute los siguientes comandos para instalar pipenv:

$ pipsi install pew
$ pipsi install pipenv

Finalmente, ejecute el siguiente comando:

$ pipenv --update

Para actualizar pipenv en cualquier momento, simplemente ejecute:

$ pipsi upgrade pipenv

Administrar paquetes de Python usando Pipenv

Ejecute 'pipenv' en su shell para mostrar la lista de comandos disponibles y opciones generales.

$ pipenv

La salida de muestra sería:

Instalación de paquetes

Cree un nuevo proyecto o vaya al directorio del proyecto existente.

$ mkdir myproject
$ cd myproject

Instale los paquetes para su proyecto:

$ pipenv install requests

Cuando ls en el directorio de su proyecto (es decir, myproject en este caso), verá dos archivos, a saber, Pipfile y Pipfile.lock . El Pipfile contiene información del paquete recién instalado, como el nombre, la versión, etc. Puede usar este Pipfile para rastrear qué dependencias necesita su proyecto cuando desea volver a instalarlo o compartirlo con otros.

$ cat Pipfile

Y el Pipfile.lock contiene la información de su sistema, todas las dependencias del paquete instalado, incluida su versión, y todos los valores hash de todos los paquetes instalados y sus dependencias.

$ cat Pipfile.lock

Ahora instale otro paquete y vuelva a comprobar el contenido de los dos archivos. Notará que el Pidfile ahora contiene dos paquetes. Y Pidfile.lock contiene todas las dependencias de los paquetes instalados, incluida su versión, y todos los valores hash de todos los paquetes instalados y sus dependencias. En pocas palabras, estos dos archivos se actualizarán automáticamente cada vez que instale un nuevo paquete.

¿Te diste cuenta? No he creado ningún entorno virtual. Pipenv creó automáticamente un entorno virtual para mi proyecto. ¿Se pregunta dónde se almacenan sus proyectos? Simplemente ejecute este comando para conocer la ubicación de su entorno virtual.

$ pipenv --venv
/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN

Para ver los detalles de inicio de su proyecto, ejecute:

$ pipenv --where
/home/sk/myproject

Como puedas en las dos salidas, "/home/sk/myproject" es el directorio de inicio de mi proyecto y "/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN" es mi entorno virtual.

Puede "ls" en su virtualenv para verificar qué hay allí.

$ ls /home/sk/.local/share/virtualenvs/myproject-x7-2XYPN

Paquetes de actualización

Para actualizar todos los paquetes, ejecute:

$ pipenv update

Este comando desinstalará todos los paquetes y reinstalará los paquetes a las últimas versiones compatibles.

Comprobación de la integridad de un paquete

¿Le preocupa si hay vulnerabilidades de seguridad en los paquetes instalados? ¡No hay problema! Pipenv te cubre las espaldas. Para verificar la integridad de los paquetes, simplemente ejecute el siguiente comando:

$ pipenv check
Checking PEP 508 requirements…
Passed!
Checking installed package safety…
All good!

El comando anterior comprueba las vulnerabilidades de seguridad y los marcadores PEP 508 proporcionados en el Pipfile.

Ver gráfico de dependencia

Ejecutemos 'pipenv graph' y veamos qué sucede.

$ pipenv graph

Como puede ver, este comando muestra el gráfico de dependencia.

Desinstalar un paquete

Para eliminar un paquete, ejecute:

$ pipenv uninstall requests
Un-installing speedtest-cli…
Uninstalling speedtest-cli-1.0.7:
 Successfully uninstalled speedtest-cli-1.0.7

Removing speedtest-cli from Pipfile…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Updated Pipfile.lock (c23e27)!

Para desinstalar todo, ejecute:

$ pipenv uninstall --all
Un-installing all packages from virtualenv…
Found 1 installed package(s), purging…

Environment now purged and fresh!

Para obtener más detalles, ejecute:

$ pipenv -h

O,

$ pipenv --man

Por lo que probé, Pipenv es mucho más fácil de usar que pip. Dado que Python.org lo recomienda oficialmente, ahora puede deshacerse de venv y virtualenv por completo al instalar paquetes de Python.

Lectura sugerida:

  • Pipx:instale y ejecute aplicaciones de Python en entornos aislados

Linux
  1. Cómo instalar Python en Linux

  2. Instalación de PIP, la herramienta de empaquetado de Python en RHEL 7 Linux

  3. Cómo instalar Python en Linux Mint 20

  4. Instalar tkinter para Python

  5. ¿Cómo instalo un script para que se ejecute en cualquier lugar desde la línea de comandos?

Cómo instalar Python 3 en Windows 10

Instalar python 3 en Redhat 8

Cómo instalar Scrapy, una herramienta de rastreo web en Ubuntu

Cómo instalar la nueva herramienta de instantáneas de Kali Linux, Unkaputtbar

Cómo instalar la distribución Anaconda Python en Ubuntu 18.04

Postman en el sistema Linux:la mejor herramienta API para desarrolladores de software