Pipenv: Flujo de trabajo en Python para humanos.

https://img.shields.io/pypi/v/pipenv.svg https://img.shields.io/pypi/l/pipenv.svg https://img.shields.io/pypi/pyversions/pipenv.svg https://img.shields.io/badge/Say%20Thanks!-🦉-1EAEDB.svg

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 y virtualenv separados. Trabajan juntos.
  • Manejar un archivo requirements.txt puede ser problemático, por eso Pipenv usa en su lugar Pipfile y Pipfile.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 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