Pipenv: Flujo de trabajo en Python para humanos.¶
Pipenv es una herramienta que apunta a traer todo lo mejor del mundo de empaquetado (bundler, composer, npm, cargo, yarn, etc.) al mundo de Python. Windows es un ciudadano primera-clase en nuestro mundo
Automáticamente crea y maneja un entorno virtual para tus proyectos, también como agregar/remover paquetes desde tu Pipfile
como instalar/desisntalar paquetes. También genera el más importante Pipfile.lock
, que es usado para producir determinado build.
Pipenv está destinado principalmente a proporcionar a usuarios y desarrolladores de aplicaciones con un metodo sencillo para configurar un entorno de trabajo. Para la distinción entre librerias y aplicaciones y el uso de setup.py
vs Pipfile
para definir dependencias, mira ☤ Pipfile vs setup.py.
Los problemas que Pipenv busca resolver son multifacéticos
- No necesitas usar más
pip
yvirtualenv
separados. Trabajan juntos. - Manejar un archivo
requirements.txt
puede ser problemático, por eso Pipenv usa en su lugarPipfile
yPipfile.lock
, que son superiores para usos básicos - Los Hashes se usan en todas partes, siempre. Seguridad. Automáticamente expone vulnerabilidades de seguridad.
- Te da una vista de tu árbol de dependecias (e.g.
$ pipenv graph
). - Coordina el flujo de desarrollo cargando archivos
.env
.
¡Instala hoy Pipenv!¶
Si estas en MacOS, puedes instalar Pipenv fácilmente con Homebrew:
$ brew install pipenv
O, si estás usando Ubuntu 17.10:
$ sudo apt install software-properties-common python-software-properties
$ sudo add-apt-repository ppa:pypa/ppa
$ sudo apt update
$ sudo apt install pipenv
De lo contrario, solo usa pip:
$ pip install pipenv
✨🍰✨
Testimonios de Usuarios¶
- Jannis Leidel, former pip maintainer—
- Pipenv is the porcelain I always wanted to build for pip. It fits my brain and mostly replaces virtualenvwrapper and manual pip calls for me. Use it.
- David Gang—
- This package manager is really awesome. For the first time I know exactly what my dependencies are which I installed and what the transitive dependencies are. Combined with the fact that installs are deterministic, makes this package manager first class, like cargo.
- Justin Myles Holmes—
- Pipenv is finally an abstraction meant to engage the mind instead of merely the filesystem.
☤ Características de Pipenv¶
- Habilita verdaderos builds deterministas, mientras fácilmente especificas solo lo que quieres.
- Genera y verifica hashes en los archivos para bloquear dependencias.
- Automáticamente instala la versión de Python, si
pyenv
esta disponible - Automáticamente busca tu proyecto home, recursivamente, buscando por un
Pipfile
- Automáticamente genera un
Pipfile
, si no existe - Automáticamente crea un entorno virtual en una locación estándar
- Automáticamente agrega/remueve paquetes a un
Pipfile
cuando se instala/desinstala - Automáticamente carga archivos
.env
, si estos existen.
Los comandos principales son install
, uninstall
and lock
, el cual genera un Pipfile.lock
. Estos tienen la intención de reemplazar el uso de $ pip install
, así como manejar manualmente un entorno virtual (para activar uno, corre $ pipenv shell
).
Conceptos Básicos¶
- Un entorno virtual se creará automáticamente, cuando no exista.
- Cuando no se pasen parámetros a
install
, todos los paquetes[packages]
especificados se instalarán. - Para iniciar un entorno virtual con Python 3, corre
$ pipenv --three
. - Para iniciar un entorno virtual con Python 2, corre
$ pipenv --two
. - De lo contrario, cualquier entorno virtual será por defecto.
Otros Comandos¶
graph
va a imprimir un bonito árbol de todas tus dependencias instaladas.shell
generará un shell con el entorno virtual activado.run
va a correr el comando dado desde el entorno virtual, con algún argumento adelante (e.g.$ pipenv run python
o$ pipenv run pip freeze
)check
asegura que los requerimientos en PEP 508 se están cumpliendo en el entorno actual.
Más guías de documentación¶
- Uso Básico de Pipenv
- ☤ Ejemplo de Pipfile & Pipfile.lock
- ☤ Recomendaciones generales & Control de versión
- ☤ Ejemplo del flujo de trabajo de Pipenv
- ☤ Ejemplo de uso del flujo de trabajo.
- ☤ Importando desde requirements.txt
- ☤ Especifica la versión de un parquete
- ☤ Especifica la versión de Python
- ☤ Dependencias editables (e.j.
-e .
) - ☤ Environment Management with Pipenv
- ☤ Configuración sobre el shell
- ☤ Una nota sobre dependencias en SCV
- ☤ Pipfile.lock características de seguridad
- Uso avanzado de Pipenv
- ☤ Advertencias
- ☤ Especificando indice de paquete
- ☤ Usando un PyPI Mirror
- ☤ Inyectando credenciales en Pipfiles con variables de entorno
- ☤ Especificando básicamente cualquier cosa
- ☤ Desplegando Dependencias de Sistema
- ☤ Pipenv y otras distribuciones
- ☤ Generando un
requirements.txt
- ☤ Detectando vulnerabilidades de seguridad
- ☤ Integraciones de Comunidad
- ☤ Abriendo un módulo en tu editor
- ☤ Instalaciones automáticas de Python
- ☤ Carga automática de
.env
- ☤ Atajos personalizados para Scripts
- ☤ Soporte para Variables de Entorno
- ☤ Configuración con Variables de Entorno
- ☤ Localización Personalizada de Entorno Virtual
- ☤ Testeando Proyectos.
- ☤ Completado en Shell
- ☤ Trabajando con componentes de Python provistos por la plataforma
- ☤ Pipfile vs setup.py
- ☤ Cambiando la locación de Cache de Pipenv
- ☤ Cambiando donde Pipenv guarda Entorno Virtuales
- ☤ Cambiando la versión por defecto de Python
- Problemas frecuentes encontrados con Pipenv
- ☤ Tus dependencias no pudieron ser resueltas
- ☤ No module named <module name>
- ☤ Mi Python instalado con pyenv no es encontrado
- ☤ Pipenv no respeta las versiones locales y globales de pyenv
- ☤ ValueError: unknown locale: UTF-8
- ☤ /bin/pip: No such file or directory
- ☤
shell
does not show the virtualenv’s name in prompt - ☤ Pipenv no respeta las dependencias en setup.py
- ☤ Usando
pipenv run
en el programa Supervisor
☤ Uso de Pipenv¶
pipenv¶
pipenv [OPTIONS] COMMAND [ARGS]...
Options
-
--where
¶
Muestra la ruta del proyecto.
-
--venv
¶
Muestra la ruta donde esta el entorno virtual.
-
--py
¶
Muestra la ruta donde esta el interprete de Python.
-
--envs
¶
Muestra opciones para variables de entorno.
-
--rm
¶
Remove the virtualenv.
-
--bare
¶
Salida minima.
-
--completion
¶
Output completion (to be eval’d).
-
--man
¶
Display manpage.
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
-
--site-packages
¶
Activa los paquetes de sitio para el entorno virtual.
-
--version
¶
Show the version and exit.
check¶
pipenv check [OPTIONS] [ARGS]...
Options
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
-
--system
¶
Use system Python.
-
--unused
<unused>
¶ Dada una ruta de codigo, muestra dependencias sin usar.
Arguments
-
ARGS
¶
Optional argument(s)
clean¶
pipenv clean [OPTIONS]
Options
-
-v
,
--verbose
¶
Modo detallado.
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
-
--dry-run
¶
Solo hace output de las dependencias innecesarias
graph¶
pipenv graph [OPTIONS]
Options
-
--bare
¶
Salida minima.
-
--json
¶
Muestra JSON.
-
--json-tree
¶
Muestra un arbol JSON .
-
--reverse
¶
Muestra un arbol de dependencias en reverso.
install¶
pipenv install [OPTIONS] [PACKAGE_NAME] [MORE_PACKAGES]...
Options
-
-d
,
--dev
¶
Instala paquetes en [dev-packages].
-
--three
,
--two
¶
Usa Ptyon3/2 cuando se crea el entorno virutal.
-
--python
<python>
¶ Especifica la version de Python que deberia usar el entorno virtual.
-
--pypi-mirror
<pypi_mirror>
¶ Especifica un PyPI mirror.
-
--system
¶
System pip management.
-
-r
,
--requirements
<requirements>
¶ Importa un archivo requirements.txt.
-
-c
,
--code
<code>
¶ Importa desde un codigo base.
-
-v
,
--verbose
¶
Modo detallado.
-
--ignore-pipfile
¶
Ignora Pipfile cuando esta instalando, usa el Pipfile.lock.
-
--sequential
¶
Instala las dependencias una por una, en vez de concurrentemente.
-
--skip-lock
¶
Ignora el mecanismo de lock cuando esta instalando, en su lugar usa el Pipfile.
-
--deploy
¶
Cancela si el Pipfile.lock esta desactualizado, o la version de Python es incorrecta.
-
--pre
¶
Permite prelanzamientos.
-
--keep-outdated
¶
Mantiene a las dependencias desactualizadas de ser actualizadas en Pipfile.lock.
-
--selective-upgrade
¶
Actualiza paquetes especificos.
Arguments
-
PACKAGE_NAME
¶
Optional argument
-
MORE_PACKAGES
¶
Optional argument(s)
lock¶
pipenv lock [OPTIONS]
Options
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
-
--pypi-mirror
<pypi_mirror>
¶ Especifica un PyPI mirror.
-
-v
,
--verbose
¶
Modo detallado.
-
-r
,
--requirements
¶
Genera un output compatible con requirements.txt
-
-d
,
--dev
¶
Genera un output compatible con requirements.txt para dependencias de desarrollo.
-
--clear
¶
Limpia el cache de dependencias.
-
--pre
¶
Permite prelanzamientos
-
--keep-outdated
¶
Mantiene las dependencias desactualizadas de ser actualizadas en el Pipfile.lock.
open¶
pipenv open [OPTIONS] MODULE
Options
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
Arguments
-
MODULE
¶
Required argument
run¶
pipenv run [OPTIONS] COMMAND [ARGS]...
Options
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
Arguments
-
COMMAND
¶
Required argument
-
ARGS
¶
Optional argument(s)
shell¶
pipenv shell [OPTIONS] [SHELL_ARGS]...
Options
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
-
--fancy
¶
Ejecuta un shell en fancy mode (para shells configuradas de manera elegantes).
-
--anyway
¶
Siempre genera una subshell, incluso con una ya generada.
Arguments
-
SHELL_ARGS
¶
Optional argument(s)
sync¶
pipenv sync [OPTIONS]
Options
-
-v
,
--verbose
¶
Modo detallado.
-
-d
,
--dev
¶
Adicionalmente instala paquete(s) en [dev-packages].
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
-
--pypi-mirror
<pypi_mirror>
¶ Especifica un PyPI mirror.
-
--bare
¶
Salida minima.
-
--clear
¶
Limpia el cache de dependencias.
-
--sequential
¶
Instala dependencias una por una, en vez de concurrentemente.
uninstall¶
pipenv uninstall [OPTIONS] [PACKAGE_NAME] [MORE_PACKAGES]...
Options
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica que version de Python deberia usar el e entorno virtual.
-
--system
¶
System pip management.
-
-v
,
--verbose
¶
Modo detallado.
-
--lock
¶
Lock afterwards.
-
--all-dev
¶
Desistala paquetes de [dev-packages].
-
--all
¶
Elimina todos los paquetes del entorno virtual. No edita el Pipfile.
-
--keep-outdated
¶
Mantiene las dependencias desactualizadas de ser actualizadas en el Pipfile.lock.
-
--pypi-mirror
<pypi_mirror>
¶ Especifica un PyPI mirror.
Arguments
-
PACKAGE_NAME
¶
Optional argument
-
MORE_PACKAGES
¶
Optional argument(s)
update¶
pipenv update [OPTIONS] [MORE_PACKAGES]... [PACKAGE]
Options
-
--three
,
--two
¶
Usa Python 3/2 cuando crea un entorno virtual.
-
--python
<python>
¶ Especifica cual version de Python deberia usar el entorno virtual.
-
--pypi-mirror
<pypi_mirror>
¶ Especifica un PyPI mirror.
-
-v
,
--verbose
¶
Modo detallado.
-
-d
,
--dev
¶
Instala paquete(s) en [dev-packages].
-
--clear
¶
Limpia el cache de dependencias.
-
--bare
¶
Salida minima.
-
--pre
¶
Permite prelanzamientos
-
--keep-outdated
¶
Mantiene las dependencias desactualizadas de ser actualizadas en el Pipfile.lock.
-
--sequential
¶
Instala dependencias una por una, en vez de concurrentemente.
-
--outdated
¶
Lista dependencias desactualizadas
-
--dry-run
¶
Lista dependencias desactualizadas
Arguments
-
MORE_PACKAGES
¶
Optional argument(s)
-
PACKAGE
¶
Optional argument