El concepto detrás de estos archivos es simple y análogo a otras herramientas ya existentes, si está familiarizado con Ruby's Bundler o Node's Npm. Pipenv
es una herramienta de gestión de entornos virtuales y paquetes que utiliza los archivos Pipfile y Pipfile.lock para lograr estos objetivos.
Pipenv maneja el entorno virtual por usted de una manera estándar predeterminada (no se requiere activar ni desactivar más). A continuación, algunos conceptos básicos para comenzar, vea más en el sitio web de pipenv .
Empezando
Comenzar a usar pipenv es fácil, en su carpeta de proyecto escriba ...
$ pipenv install
... y si ya tiene un requirements.txt
archivo, generará un Pipfile
archivo con los requisitos y una carpeta de entorno virtual, de lo contrario, generará un Pipfile
archivo vacío . Si no le gustó o cambió de opinión acerca de algo que instaló, simplemente escriba ...
$ pipenv uninstall <package>
... y estás listo para irte. Para activar el entorno virtual que pipenv ya generó, vaya con ...
$ pipenv shell
... y su entorno virtual se activará. Para salir del medio ambiente ...
$ exit
... y volverá a su sesión de terminal original.
Pipfile
El archivo Pipfile está destinado a especificar los requisitos de paquetes para su aplicación o biblioteca de Python, tanto para el desarrollo como para la ejecución. Puede instalar un paquete simplemente usando ...
$ pipenv install flask
... y se agregará como una dependencia para la implementación y ejecución o mediante el uso de ...
$ pipenv install --dev pytest
... y se usará como dependencia para el tiempo de desarrollo. La sintaxis del archivo es bastante sencilla, como sigue.
[[source]] # Here goes your package sources (where you are downloading your packages from).
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages] # Here goes your package requirements for running the application and its versions (which packages you will use when running the application).
requests = "*"
flask = "*"
pandas = "*"
[dev-packages] # Here goes your package requirements for developing the application and its versions (which packaes you will use when developing the application)
pylint = "*"
wheel = "*"
[requires] # Here goes your required Python version.
python_version = "3.6"
Pipfile.lock
El Pipfile.lock tiene la intención de especificar, en base a los paquetes presentes en Pipfile , qué versión específica de esos debe usarse, evitando los riesgos de actualizar automáticamente los paquetes que dependen unos de otros y romper el árbol de dependencia de su proyecto.
Puede bloquear sus paquetes instalados actualmente usando ...
$ pipenv lock
... y la herramienta buscará su carpeta de entorno virtual para generar el archivo de bloqueo automáticamente, en función de las versiones instaladas actualmente. La sintaxis del archivo no es tan obvia como lo es para Pipfile , por lo que, en aras de la concisión, no se mostrará aquí.
Gemfile
yGemfile.lock
desde el mundo Ruby: el.lock
archivo tiene versiones específicas para cada dependencia; el que no tiene esa extensión solo tiene las versiones conocidas por los humanos que controlan. Dicho esto, pedir una explicación de algo que todavía está evolucionando y que está muy lejos de estar bien definido, mucho menos estandarizado, es quizás un poco prematuro.