Python - Ejecutar un entorno virtual dentro de Jupyter notebook
17 de Marzo de 2018
Los Jupyter notetbooks son super prácticos cuando se trata de explorar datos en Python. Ademas del código se puede integrar imágenes y documentación, por eso son perfectos para capacitaciones o para compartir dentro de un equipo.
Pero como hacemos cuando queremos ejecutar un virtual env (entorno virtual) dentro de un notebook? Es lo que vamos a ver a continuación y es bastante fácil!
Instalar Jupyter
Yo uso Python 3.6 en Windows.
>pip install jupyter |
Ejecutar Jupyter notebook
Para ejecutar Jupyter notebook es tan fácil como:>jupyter notebook |
Eso nos va habrir el URL http://localhost:8888/tree dentro de nuestro navegador.
Si ya usamos el puerto 8888 por un otro servicio podemos escoger el puerto. Por ejemplo para lanzar Jupyter el en puerto 8889, añadimos la opción: --port=8889.
Instalar y configurar un entorno virtual
Para crear un notebook, hacemos clic en el botón New y luego Python 3.Ahora tenemos que crear un virtual env. Lo llamo "GIS", es donde voy a instalar todos mis módulos especializados en SIG:
>python -m venv gis |
Luego, lo activo:
>gis\Scripts\activate.bat (gis) > |
Instalamos el módulo Shapely. Como estoy en Windows, uso la wheel de este fantástico sitio.
(gis) >pip install Shapely-1.6.4.post1-cp36-cp36m-win_amd64.whl Processing shapely-1.6.4.post1-cp36-cp36m-win_amd64.whl Installing collected packages: Shapely Successfully installed Shapely-1.6.4.post1 |
Y luego el módulo ipykernel (todavia dentro del virtual env):
(gis) >pip install ipykernel ... Successfully installed colorama-0.3.9 decorator-4.2.1 ipykernel-4.8.2 ipython-6.2.1 ipython-genutils-0.2.0 jedi-0.11.1 jupyter-client-5.2.3 jupyter-core-4.4.0 parso-0.1.1 pickleshare-0.7.4 prompt-toolkit-1.0.15 pygments-2.2.0 python-dateutil-2.7.0 pyzmq-17.0.0 simplegeneric-0.8.1 six-1.11.0 tornado-5.0 traitlets-4.3.2 wcwidth-0.1.7 |
Verificamos que esté bien instalado:
(gis) >ipython Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] Type 'copyright', 'credits' or 'license' for more information IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help. In [1]: import shapely In [2]: shapely.__version__ Out[2]: '1.6.4.post1' |
Ahora el paso importante, necesitamos configurar un kernel IPython para nuestro entorno virtual "gis":
(gis) >python -m ipykernel install --user --name gis --display-name "GIS virtual env" Installed kernelspec gis in C:\Users\Pierre\AppData\Roaming\jupyter\kernels\gis |
Salimos del entorno virtual:
(gis) >deactivate > |
Ejecutar el entorno virtual dentro del notebook
Lanzamos el Jupyter notebook de nuevo:>jupyter notebook |
Ahora, cuando hacemos clic en el buton New, vemos nuestro virtual env "GIS virtual env" dentro de la lista de opciones.
Dentro de nuestro nuevo notebook, podemos importar todos los modulos del entorno virtual gis.
Lo mejor es que no necesitamos lanzar el entorno virtual para que esté disponible dentro del notebook. Jupyter lo hace para nosotros. Y obviamente, podemos tener varios entornos configurados de esta manera. Una otra razón para usarlos más!