NOTAS DE UN INFORMÁTICO 1: ENTORNO VIRTUAL, PIPENV

avatar

ENTORNO VIRTUAL

PYTHON  PIPENV.jpg

Un entorno virtual en python es un espacio de trabajo que permite el desarrollo de aplicaciones con un control de versiones de paquetes y módulos que no forman parte de las librerías estándar, son independientes del sistema, se crean en directorios aislados y no requieren permisos del administrador. Para la creación de un entorno virtual usaremos la herramienta PIPENV.

Para iniciar con el proceso de instalación, abrimos la terminal o CMD en el directorio donde queremos crear en entorno virtual.

Instalación de PIPENV:

Si tenemos las versiones 2 y 3 de python instalada, debemos especificar la versión con la que queremos trabajar, "pip" para python 2 y "pip3" para python.

Para conocer la versión de python:

python --version

ó

python3 --version

En mi caso, sólo tengo la versión 3, ejecuto lo siguiente:

pip install pipenv

Para iniciar un nuevo proyecto usaremos el comando:

pipenv shell

Esto creará un archivo llamado pipfile que contendrá la información de nuestro proyecto:

$ cat pipfile

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]

[requires]
python_version = "3.8"

Ahora para instalar un paquete, como ejemplo usaremos la blibioteca que nos premite interactuar con la API de discord, discord.py, y lo haremos con el siguiente comando:

pipenv install discord.py

Se actualizará el archivo pipfile indicándonos que ya está instalada la la biblioteca y contendrá lo siguiente:

$ cat pipfile

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
"discord.py" = "*"

[requires]
python_version = "3.8"

Si queremos desinstalar un paquete:

pipenv uninstall nombre_paquete

Si lo que deseamos es instalar un paquete que sólo usaremos en desarrollo:

pip install "paquete" --dev

Para conocer los módulos o dependencias instaladas en nuestro proyecto:

pipenv lock -r

Cuando instalamos una biblioteca, por lo general se instala un árbol de dependencias, la forma de ver estos es con el siguiente comando:

pipenv graph

El siguiente ejemplo es el árbol de dependencia de la biblioteca discord.py

$ pipenv graph
discord.py==1.5.1
  - aiohttp [required: >=3.6.0,<3.7.0, installed: 3.6.3]
    - async-timeout [required: >=3.0,<4.0, installed: 3.0.1]
    - attrs [required: >=17.3.0, installed: 20.2.0]
    - chardet [required: >=2.0,<4.0, installed: 3.0.4]
    - multidict [required: >=4.5,<5.0, installed: 4.7.6]
    - yarl [required: >=1.0,<1.6.0, installed: 1.5.1]
      - idna [required: >=2.0, installed: 2.10]
      - multidict [required: >=4.0, installed: 4.7.6]

Es importante revisar si los paquetes que estamos usando en el desarrollo tienen vulnerabilidades, en el caso de tenerla, deberíamos actualizar la versión, con el siguiente comando podemos obtener esta información y sugerencias de versiones donde ya estén solucionadas:

pipenv check

Cuando queremos desplegar nuestra aplicación en un servidor debemos ejecutar el siguiente comando antes de desplegar para actualizar el archivo pipfile.lock:

pipenv lock

Una vez hecho esto, ejecutamos el siguiente comando que instalará los paquetes con las versiones correctas y no existan problemas en nuestro entorno de producción:

pipenv install --ignore-pipfile

Para eliminar el entorno virtual:

pipenv --rm

Si bajamos un proyecto de un sitio como Github, para instalar los módulos necesarios para su funcionamiento, lo hacemos con el siguiente comando:

pipenv install 

Instalar paquetes desde requirements

pipenv install -r requirements.txt

Con estos comandos podemos trabajar en el desarrollo de una aplicación en un entorno virtual, que si en algún momento deseamos migrar todo el trabajo a otro sitio, el proceso será muy sencillo, al igual que para el despliegue de producción. Si desea conocer más, en el siguiente enlace puede obtener toda la documentación oficial. También les dejo del siguiente enlace de video donde se explica todos los pasos anteriores.


Iniciaré una lista de publicaciones relacionadas al ambiente de programación y solución de problemas informáticos, llamadas "NOTAS DE UN INFORMÁTICO". Espero que les haya sido de mucha utilidad esta publicación, los invito a compartirla, si tiene alguna sugerencia, cuéntenos en los comentarios.


La imagen fue creada con Canva usando un fondo de Pixabay.


Discord alberto0607#6813

Sígueme en Twitter



0
0
0.000
4 comments
avatar

Congratulations @alberto0607! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You distributed more than 300 upvotes. Your next target is to reach 400 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @hivebuzz:

Next Hive Power Up Day is November 1st 2020
Trick or Treat - Share your scariest story and get your Halloween badge
0
0
0.000