Un entorno virtual en Python es una copia de un entorno de Python ya instalado que nos permite trabajar de una forma m谩s limpia en un determinado proyecto ya que estaremos aislando un entorno para poder trabajar con los m贸dulos y librer铆as necesarias para cuyo proyecto.
En la siguiente ilustraci贸n veremos un ejemplo de como es un entorno virtual y hacernos una idea.
--- title: 'Esquema de Entornos Virtuales de Python' --- graph TD B(Python 3.9) B---T[Entornos Virtuales] T-->C(Python 3.9) T-->D(Python 3.9) T-->E(Python 3.9) subgraph '' C-->CD[Django==2.0] D-->DD[Django==2.2] E-->ED[Django==3.2] end linkStyle default stroke: #f2f5a6 classDef default fill:#191919,stroke:#f2f5a6,stroke-width:1px,color:#ccc
Cuando instalamos Python este ya viene con un m贸dulo llamado venv
que permite la creaci贸n de entornos virtuales, como se mencion贸 anteriormente y vimos en la ilustraci贸n cuando se crea un entorno virtual, se crea una copia de una instalaci贸n existente de Python, conocida como base
del entorno virtual de Python.
La creaci贸n de entornos virtuales se realiza ejecutando el siguiente comando:
1
python -m venv /ruta/nuevo/entorno
Pipenv es una gran herramienta que administra entornos virtuales que destaca de las otras introduciendo otras caracter铆sticas mucho m谩s flexibles.
Autom谩ticamente crea y maneja un entorno virtual para tus proyectos, tambi茅n como agregar/remover paquetes desde tu archivo Pipfile.lock, que es usado para producir un determinado build.
Pipenv est谩 destinado principalmente a proporcionar a usuarios y desarrolladores de aplicaciones un m茅todo sencillo para configurar un entorno de trabajo.
Por defecto, Pipenv guarda todos sus entornos virtuales en un solo lugar. Usualmente esto no es un problema, pero si te gustar铆a cambiarlo para comodidad de desarrollo, o si esta causando issues en servidores de construcci贸n puedes setear la variable de entorno PIPENV_VENV_IN_PROJECT
para crear un entorno virtual dentro de la ra铆z de tu proyecto.
Por defecto, Pipenv inicializar谩 un proyecto usando cualquier versi贸n de python que tenga python3. Adem谩s de iniciar un proyecto con las banderas --three
o --two
, tambi茅n puedes setear la variable PIPENV_DEFAULT_PYTHON_VERSION
para especificar cual versi贸n usa cuando se inicie un proyecto.
Versi贸n requerida de Python:
P谩gina en pipy:
En la terminal con el siguiente comando, procedemos a la instalaci贸n:
1
pip install --user pipenv
NOTA
Esto se hace para prevenir romper cualquier paquete de sistema. Si pipenv no esta disponible en tu shell despu茅s de la instalaci贸n, vas a necesitar agregar la carpeta raiz de binarios del usuario a tu PATH en mi caso (windows)C:\Users\home\AppData\Roaming\Python\Python38\Scripts
Debes tener instalado Homebrew, luego ejecuta el siguiente comando en el terminal:
1
brew install pipenv
Para actualizarlo en cualquier momento, puedes ejecutar el siguiente comando:
1
brew upgrade pipenv
Crea un entorno virtual con la versi贸n 3 de Python:
1
pipenv install --three
Crea un entorno virtual con la versi贸n 2 de Python (debe tener instalado en su sistema python 2.x)
1
pipenv install --two
Activar un entorno virtual (si no existe, lo crea en el directorio actual)
1
pipenv shell
Salir del entorno virtual previamente activado:
1
exit
Instalar paquetes:
1
pipenv install requests
Eliminar un paquete o eliminar todos los paquetes:
1
2
pipenv uninstall django
pipenv uninstall --all
Ejecutando un script usando pipenv run:
1
pipenv run python main.py
Para evitar escribir el comando tan largo podemos activar el entorno virtual simplemente y luego ejecutar el script:
1
2
pipenv shell
python main.py
Instalar las dependencias de un archivo Pipfile:
1
pipenv install
Ejemplo de Pipfile
:
1
2
3
4
5
6
7
8
9
10
11
12
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[dev-packages]
[packages]
django = "*"
[requires]
python_version = "3.7"
[source]
: nos muestra el enlace de donde se descargan los paquetes.[dev-packages]
: aqu铆 se registran las librer铆as solo para desarrollo.[packages]
: aqu铆 se registran todos los paquetes requeridos para el proyecto, cuando instalemos los paquetes con el comando pipenv install .Ejemplo de Pipfile.lock
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"_meta": {
"hash": {
"sha256": "7e7ef69da7248742e869378f8421880cf8f0017f96d94d086813baa518a65489"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.7"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {},
"develop": {}
}
[requires]
de tu Pipfile. En resumen, deberias tener solo una versi贸n de Python, como herramienta de desarrollo.[packages]
en el Pipfile.