Skip to content

Commit 619bfff

Browse files
committed
Seccion 'Entornos virtuales' creada
1 parent ee470d8 commit 619bfff

5 files changed

Lines changed: 119 additions & 89 deletions

File tree

docs/blog/posts/v2.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ social:
2626

2727
### Contenidos
2828

29+
- Sección 'Entornos virtuales' creada;
2930
- Explicación de entornos locales corregida;
31+
- Explicación de venv corregida;
3032
- Operadores bit a bit, de pertenencia y de identidad agregados.
3133

3234

docs/entornos/fundamentos.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
tags:
3+
- venv
4+
- Modulos
5+
- Entornos
6+
---
7+
8+
# Fundamentos de los entornos virtuales
9+
10+
11+
## Creación
12+
13+
Los entornos virtuales se construyen siguiendo los siguientes pasos:
14+
15+
1. Crear un directorio (es decir, una carpeta) independiente de la instalación de Python global,
16+
típicamente en la ubicación del proyecto
17+
o en una carpeta del usuario;
18+
2. Crear una réplica del intérprete de Python o un enlace simbólico al mismo en el directorio.
19+
3. Instalar los paquetes requeridos en dicho directorio,
20+
permitiendo especificar qué versión se necesita de cada uno.
21+
22+
23+
### Activación
24+
25+
Los entornos virtuales requieren activación para su uso.
26+
La activación del entorno virtual consiste en modificar
27+
en la sesión actual (entiéndase la shell actual)
28+
la variable **`PATH`** del sistema operativo,
29+
colocándole al comienzo
30+
la ruta del entorno virtual creado.
31+
32+
De esta manera el sistema operativo dará prioridad a los ejecutables y paquetes del entorno virtual respecto a sus equivalentes globales.
33+
34+
Por ejemplo: el intérprete global de Python en un sistema GNU/Linux
35+
suele ser `/usr/bin/python`.
36+
Dicha ruta puede ser consultada en la *shell* Bash con el comando `which`:
37+
38+
```bash title="Bash - Ruta de Python"
39+
which python
40+
```
41+
Tras activar el entorno virtual,
42+
al repetir la consulta el resultado cambia a una ruta de la forma `RUTA_ENTORNO/bin/python`.
43+
44+
Los cambios mencionados en la variable `PATH` pueden verificarse
45+
con el comando:
46+
47+
```bash title="Bash - variable PATH"
48+
echo $PATH
49+
```
50+
51+
## Eliminación
52+
53+
Los entornos virtuales pueden ser eliminados fñacilmente mediante el borrado de su carpeta contenedora,
54+
sin afectar en modo alguno a los entornos de otros proyectos ni al intérpete principal de Python.
55+
56+
## Ventajas e inconvenientes
57+
58+
El uso de entornos virtuales
59+
introduce algunas ventajas respecto al uso del intérprete global:
60+
61+
- Cada proyecto puede tener una versión diferente de un mismo paquete,
62+
evitando conflictos de instalación y de actualización;
63+
- Se evita la carga de paquetes no incluidos en el proyecto,
64+
permitiendo entornos mejor controlados para cada proyecto;
65+
- Es posible agregar enlaces simbólicos de múltiples versiones de Python,
66+
lo cual permite ejecutar el proyecto con distintas versiones del mismo.
67+
68+
Como contrapartida aumenta el espacio en disco ocupado,
69+
por cuanto cada entorno virtual tiene su propia copia de los paquetes.
70+

docs/entornos/index.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Entornos virtuales
2+
3+
4+
5+
Los *entornos virtuales* son instalaciones locales de los paquetes que permiten un mejor control de los paquetes y sus versiones, minimizando el riesgo de incompatibilidades entre paquetes, evitar problemas debidos a la actualización descuidada de los mismos, etc.
6+
7+
8+
9+
## Contenidos
10+
11+
{{ pagetree(siblings) }}
Lines changed: 28 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,17 @@
1+
---
2+
tags:
3+
- venv
4+
- Modulos
5+
- Entornos
6+
---
17

28

3-
# Entorno virtual: módulo VENV
49

510

6-
## Entornos virtuales
7-
8-
Los *entornos virtuales* son instalaciones locales de los paquetes que permiten un mejor control de los paquetes y sus versiones, minimizando el riesgo de incompatibilidades entre paquetes, evitar problemas debidos a la actualización descuidada de los mismos, etc.
9-
10-
### Creación
11-
12-
Los entornos virtuales se construyen siguiendo los siguientes pasos:
13-
14-
1. Crear un directorio (es decir, una carpeta) independiente de la instalación de Python global,
15-
típicamente en la ubicación del proyecto
16-
o en una carpeta del usuario;
17-
2. Crear una réplica del intérprete de Python o un enlace simbólico al mismo en el directorio.
18-
3. Instalar los paquetes requeridos en dicho directorio,
19-
permitiendo especificar qué versión se necesita de cada uno;
20-
<!--
21-
4. Crear una copia alterada de la variable **`PYTHONPATH`**, donde la primera ruta incluida será la del nuevo intérprete y sus dependencias.
22-
5. Ejecutar el intérprete de Python local.
23-
24-
-->
25-
<!--
26-
creando una version alterada de la variable **PYTHONPATH** del intérprete en la que agragan al comienzo la ruta local con los paquetes del entorno.
27-
-->
28-
29-
<!--
30-
De esta manera el intèrprete de Python buscará sus dependencias primero en la ruta del entorno virtual y sólo si no encuentra los paquetes allí los busca en la instalacion global.
31-
32-
-->
33-
34-
35-
Esto introduce algunas ventajas respecto al uso del intérprete global:
36-
37-
- Cada proyecto puede tener una versión diferente de un mismo paquete,
38-
evitando conflictos de instalación y de actualización;
39-
- Se evita la carga de paquetes no incluidos en el proyecto,
40-
permitiendo entornos mejor controlados para cada proyecto;
41-
- Es posible agregar enlaces simbólicos de múltiples versiones de Python,
42-
lo cual permite ejecutar el proyecto con distintas versiones del mismo.
43-
44-
45-
Como contrapartida aumenta el espacio en disco ocupado,
46-
por cuanto cada entorno virtual tiene su propia copia de los paquetes.
47-
48-
49-
### Activación
50-
51-
Los entornos virtuales requieren activación para su uso.
52-
La activación del entorno virtual consiste en modificar
53-
en la sesión actual
54-
la variable **`PATH`** del sistema operativo,
55-
colocándole al comienzo
56-
la ruta del entorno virtual creado.
57-
De esta manera el sistema operativo dará prioridad a los ejecutables y paquetes del entorno virtual respecto a sus equivalentes globales.
58-
59-
Por ejemplo: el intérprete global de Python en un sistema GNU/Linux
60-
suele ser `/usr/bin/python`.
61-
Dicha ruta puede ser consultada en la *shell* Bash con el comando `which`:
62-
63-
```bash title="Bash - Ruta de Python"
64-
which python
65-
```
66-
Tras activar el entorno virtual,
67-
al repetir la consulta el resultado cambia a una ruta de la forma `RUTA_ENTORNO/bin/python`.
68-
6911

7012
## VENV
7113

72-
VENV es la herramienta integrada de Python para trabajar con entornos virtuales.
14+
**`venv`** es la herramienta integrada de Python para trabajar con entornos virtuales.
7315
Se incluye desde la versión 3.4.
7416

7517
### Creacion entorno virtual
@@ -180,27 +122,36 @@ deactivate
180122
```
181123
De esta manera se retoma el uso de los paquetes globales de manera inmediata.
182124

125+
### Uso sin activación
126+
127+
128+
El intérprete local de Python puede ser ejecutado directamente a partir de su ruta.
129+
Invocándolo directamente se ahorra el paso de activación de su entorno virtual.
130+
131+
Uso en Bash:
132+
133+
```bash title="Sin activación - interprete local"
134+
ruta_entorno/bin/python # Linux y MacOs
135+
ruta_entorno/Scripts/python # Windows
136+
```
137+
138+
183139
### Eliminar entorno virtual
140+
184141
El entorno virtual se elimina borrando los directorios auxiliares del entorno:
185142

186143
```bash title="Eliminar entorno"
187144
deactivate
188145
rm -r ruta_directorio # eliminacion recursiva
189146
```
190147

191-
!!! warning "Eliminar entorno"
192-
Prestar atención a que el código esté afuera del directorio del entorno virtual antes de eliminarlo.
193-
194-
195-
148+
!!! warning "Eliminar entorno"
196149

197-
## Alternativas a VENV
198-
199-
Existen alternativas para crear entornos virtuales. Algunas de ellas son:
200-
201-
- **VirtualEnv**
202-
- **PIPENV**
203-
- **Poetry**
150+
Prestar atención a no incluir código del proyecto
151+
adentro del directorio del entorno virtual.
152+
De otro modo,
153+
al eliminar el entorno virtual,
154+
también se eliminaría parte del código de programa.
204155

205156

206157

@@ -210,5 +161,3 @@ Existen alternativas para crear entornos virtuales. Algunas de ellas son:
210161
[Documentación oficial - VENV](https://docs.python.org/3/library/venv.html)
211162

212163
[PythonLand - How to Create, Activate, Deactivate, And Delete](https://python.land/virtual-environments/virtualenv)
213-
214-

mkdocs.yml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -245,16 +245,6 @@ nav:
245245
- funciones/orden_superior.md
246246
- funciones/decoradores.md
247247

248-
# - funciones/main.md
249-
250-
- Módulos y paquetes:
251-
- Módulos: contenido/modulos.md
252-
- Paquetes: contenido/paquetes.md
253-
- Entorno virtual - módulo VENV: contenido/8-entorno_virtual.md
254-
255-
256-
257-
258248
- Clases y POO:
259249
- clases/index.md
260250
- clases/clases.md
@@ -271,13 +261,21 @@ nav:
271261
- clases/solid/isp.md
272262
- clases/solid/dip.md
273263

264+
- Módulos y paquetes:
265+
- Módulos: contenido/modulos.md
266+
- Paquetes: contenido/paquetes.md
267+
274268
- Función Main:
275269
- main/index.md
276270
- main/sintaxis.md
277271
- main/argumentos.md
278272
- main/retorno.md
279273
- main/encapsular.md
280274

275+
- Entornos virtuales:
276+
- entornos/index.md
277+
- entornos/fundamentos.md
278+
- entornos/venv.md
281279

282280
- Paralelismo:
283281
- paralelismo/procesos.md

0 commit comments

Comments
 (0)