Crear entorno virtualenv de python3.5

Si usamos virtualenv a secas nos creará un entorno virtual de python2 y python3, pero en mi caso me interesa usar python3.5 para una aplicación que estoy haciendo. Así que hoy veremos como instalar y entrar en un entorno virtual de python.

Primero de todo, python es fácilmente extendible con módulos, los módulos son librerías que han programado otros y que hacen cosas, yo los llamo chinos, porque una vez compiladas, las librerías son binarios y si los editas con un editor de textos lo que ves es un galimatías de carácteres, lo comúnmente llamado “chinos”.
Ésta forma de programar nos permite avanzar mucho mas rápido en el desarrollo de nuestra aplicación, destinando nuestro tiempo a programar lo que hace realmente nuestra aplicación y facilitar el trabajo a la creación de por ejemplo la estructura de la página web con Flask y Bootstrap o un framework como django.

Los módulos las instalamos mediante un gestor de paquetes, como en cualquier distribución de gnu/linux, podemos especificar pip para python2 y pip3 para python3 o python3.5, ésto lo que hace es descargarte el módulo en el directorio /usr/local/lib/python3.5/dist-packages, con pip3 show podemos ver información del módulo:

laura@melatonina:/usr/src$ pip3 show flask
Name: Flask
Version: 1.0.2
Summary: A simple framework for building complex web applications.
Home-page: https://www.palletsprojects.com/p/flask/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD
Location: /usr/local/lib/python3.5/dist-packages
Requires: Jinja2, click, itsdangerous, Werkzeug

Si necesitas saber qué hace el módulo, es tan simple como ir al directorio correspondiente y editar el fichero .py correspondiente al módulo.

En python cuando queremos compartir un proyecto, lo común es trabajar en entornos virtuales. Lo que es realmente un entorno virtual es un directorio con mas directorios dentro y ahí entre éstos directorios está el código de nuestro programa. Cuando queramos compartir el proyecto, comprimiremos el directorio entero en el que hemos creado el entorno virtual.

En mi caso, estoy usando /usr/src/ para almacenar ahí los proyectos que voy creando. Ésto es una cosa que me liaba mucho con los virtualenv, que algunos los creaban en un sitio, otros en otro, otros ni siquiera lo especificaban y no me quedaba clara ésta información, hasta que di con ello, y espero que éste post permita ver la luz a más de uno :)

Pues vamos a crear un proyecto que se llama “miproyecto”, para ello me voy a /usr/src/ (no es necesario ser root para ejecutar python, si tienes problemas en crear el directorio, crealo como root y luego asignale los permisos del usuario que va a desarrollar sobre el entorno virtual.

laura@melatonina:~$ cd /usr/src
laura@melatonina:/usr/src$ mkdir miproyecto
laura@melatonina:/usr/src/miproyecto$
laura@melatonina:/usr/src$ $ virtualenv -p python3 venv
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/laura/dev/miproyecto/venv/bin/python3
Also creating executable in /home/laura/dev/miproyecto/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

Ahora para entrar en el entorno virtual, vamos a ejecutar lo siguiente:

laura@melatonina:/usr/src$ source miproyecto/venv/bin/activate
(miproyecto) laura@melatonina:/usr/src$

Ahora aquí podremos instalar los módulos

(miproyecto) laura@melatonina:/usr/src$ pip3 install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/d1/e5/2676be45ea49cfd09a663f289376b3888accd57ff06c953297bfdee1fb08/Django-2.1.3-py3-none-any.whl (7.3MB)
    100% |████████████████████████████████| 7.3MB 703kB/s 
Collecting pytz (from django)
  Downloading https://files.pythonhosted.org/packages/f8/0e/2365ddc010afb3d79147f1dd544e5ee24bf4ece58ab99b16fbb465ce6dc0/pytz-2018.7-py2.py3-none-any.whl (506kB)
    100% |████████████████████████████████| 512kB 1.2MB/s 
Installing collected packages: pytz, django
Successfully installed django-2.1.3 pytz-2018.7

Para crear un proyecto con django hacemos lo siguiente:

(miproyecto) laura@melatonina:/usr/src/$ django-admin startproject miproyecto .
(miproyecto) laura@melatonina:/usr/src/miproyecto$ ls
manage.py  venv  miproyecto

para salir del entorno virtual usar deactivate

(miproyecto) laura@melatonina:/usr/src/miproyecto$ deactivate
laura@melatonina:/usr/src/miproyecto$

Si algo no funciona, comprueba que has instalado python3 y virtualenv

(miproyecto) laura@melatonina:/usr/src/miproyecto$ dpkg -l |grep virtualenv
2489:ii  python3-virtualenv                        15.1.0+ds-1                                 all          Python virtual environment creator
2675:ii  virtualenv                                15.1.0+ds-1                                 all          Python virtual environment creator

Y listos el resto para otro post.

One Comment

  1. ¡Qué bueno verte por los mundos de Python! Hace anda desarrollé un microservicio para redirecciones HTTP 301 que te reenvía a una URL o a otra según tu país de orígen (Usando librerías de MaxMind) y tu User Agent. Todo ello con Python 3.7 y Flask, súper fácil y rápido. Lo de los virtualenvs, siempre los pongo en mi home, en algún directorio en el que generalmente guardo las cosas que desarrollo.

    Respon

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.