Diferencia entre revisiones de «Crear ambiente virtual de Python»

De nuxpy
Ir a la navegación Ir a la búsqueda
Línea 63: Línea 63:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Así cuando se ejecute el proyecto las variables de entorno y librerías que usará serán las instaladas dentro del ambiente virtual declarado dentro del proyecto.
 
Así cuando se ejecute el proyecto las variables de entorno y librerías que usará serán las instaladas dentro del ambiente virtual declarado dentro del proyecto.
 +
= Replicación de paquetes =
 +
Si se desea replicar los paquetes de un ambiente virtual de ''python'' en otro ambiente para otra aplicaciones pero con las mismas librerías usadas en este ambiente virtual, se puede crear un fichero con las librerías o paquetes específicos de la siguiente manera:
 +
== Crear lista de paquetes ==
 +
En primera instancia se abre el ambiente virtual con '''. /venv/bin/activate''' y posteriormente se hace lo siguiente:
 +
<syntaxhighlight lang="bash">
 +
(venv) nuxpy@pc:~/programacion/python/miproyecto_viejo $ pip3 freeze > requerimientos.txt
 +
</syntaxhighlight>
 +
Esto genera la lista de librerías o paquetes usados en este entorno virtual de ''python''.
 +
== Instalar lista de paquetes ==
 +
Una vez que se tiene el fichero con la lista de paquetes del entorno virtual previo, se crea el nuevo entorno virtual y posteriormente se hace la instalación de todos los paquetes mediante la lista creada.
 +
 +
Es decir, se entra en el nuevo entorno virtual:
 +
<syntaxhighlight lang="bash">
 +
nuxpy@pc:~/programacion/python/miproyecto_nuevo $ . /venv/bin/activate
 +
</syntaxhighlight>
 +
Posteriormente se hace la instalación de los paquetes:
 +
<syntaxhighlight lang="bash">
 +
(venv) nuxpy@pc:~/programacion/python/miproyecto_nuevo $ pip3 install -r ../miproyecto_viejo/requerimientos.txt
 +
</syntaxhighlight>
 
= Temas relacionados =
 
= Temas relacionados =
 
* [[Flask: creación de un proyecto‎‎]]
 
* [[Flask: creación de un proyecto‎‎]]

Revisión del 10:36 19 oct 2021

Python ofrece la posibilidad de crear un ambiente o entorno exclusivo para cada aplicación, cada ambiente poseerá las librerías necesarias que se requieren con la versión requerida de estas.

Así, cada aplicación funcionará de manera semi aislada sin perturbar la ejecución de otra o presentar conflictos de alguna incompatibilidad o convivencia de librerías similares de diferentes versiones.

Crear proyecto

Inicialmente se debe destinar un directorio exclusivo para el proyecto, después de esto, dentro del directorio se genera el árbol correspondiente para las librerías que trabajarán con dicho proyecto.

Crear el directorio del proyecto y puede ser con cualquier usuario del sistema:

mkdir miproyecto

Luego dentro del directorio cargar el ambiente o entorno virtual:

cd miproyecto
python -m venv venv

Este comando generará dentro del directorio del proyecto un árbol de ambiente para el proyecto.

Activación del entorno virtual

Una vez creado el árbol, se "enciende" el entorno virtual:

. venv/bin/activate

Posteriormente el prompt se vería de la siguiente manera:

(venv) nuxpy@pc:~/programacion/python/miproyecto $

Una vez activado el entorno se pueden realizar instalaciones de las librerías de la siguiente manera:

pip3 install flask

Estas instalaciones solo afectarán al entorno en cuestión.

Desactivación del entorno virtual

La desactivación simplemente cierra el prompt del ambiente virtual y retorna al prompt del usuario en cuestión. Para esto se puede usar el siguiente comando:

deactivate

Ejecución del proyecto

Dentro del directorio miproyecto se debe crear un fichero vacío llamado __init__.py, ejemplo:

touch __init__.py

Suponiendo que el árbol del proyecto se verá parecido al siguiente:

.
├── __init__.py
├── base.py
├── static
│   ├── css
│   └── js
├── templates
│   └── var
│       ├── db
│       └── log
└── venv

Una vez que se tiene el entorno, fichero __init__.py y árbol del proyecto se puede realizar un pequeño script que levante el proyecto, este debe ir ubicado fuera del directorio miproyecto y puede tener el siguiente contenido:

#!/home/nuxpy/programacion/python/miproyecto/venv/bin/python3
# -*- coding: utf-8 -*-
from miproyecto import base
if __name__ == "__main__":
    base.main()

Así cuando se ejecute el proyecto las variables de entorno y librerías que usará serán las instaladas dentro del ambiente virtual declarado dentro del proyecto.

Replicación de paquetes

Si se desea replicar los paquetes de un ambiente virtual de python en otro ambiente para otra aplicaciones pero con las mismas librerías usadas en este ambiente virtual, se puede crear un fichero con las librerías o paquetes específicos de la siguiente manera:

Crear lista de paquetes

En primera instancia se abre el ambiente virtual con . /venv/bin/activate y posteriormente se hace lo siguiente:

(venv) nuxpy@pc:~/programacion/python/miproyecto_viejo $ pip3 freeze > requerimientos.txt

Esto genera la lista de librerías o paquetes usados en este entorno virtual de python.

Instalar lista de paquetes

Una vez que se tiene el fichero con la lista de paquetes del entorno virtual previo, se crea el nuevo entorno virtual y posteriormente se hace la instalación de todos los paquetes mediante la lista creada.

Es decir, se entra en el nuevo entorno virtual:

nuxpy@pc:~/programacion/python/miproyecto_nuevo $ . /venv/bin/activate

Posteriormente se hace la instalación de los paquetes:

(venv) nuxpy@pc:~/programacion/python/miproyecto_nuevo $ pip3 install -r ../miproyecto_viejo/requerimientos.txt

Temas relacionados