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