Instalar IPython mediante pip en Ubuntu y Mac OS X

Introducción

Una vez que hemos decido no hacer frente a los gastos del uso legal de Mathematica y hemos desechado la ideas usar Maxima por las razones ya bien conocidas, una buena apuesta es llamar a la puerta de Python y servirse de las herramientas que se han derivado de él en la última década; nos referimos a sagemath e IPython.

A la instalación de sagemath le hemos dedicado un instructivo post en Ubuntu Driver. A IPython le dedicaremos alguno pronto, pero hay una dificultad en su instalación que urge solventar.

No conocemos mejor directriz de instalación que la dada en la página oficial donde en el apartado “I already have Python”, dentro de la casuística de instalación sugiere el uso de pip (esta herramienta ha sido explicada en nuestro post titulado “Mi Primera Clase de Python”). Por supuesto que casi la totalidad del común de los usuario estará en esta situación, a saber, la de “yo ya tengo Python”.

En este post hemos usado Python 3, tanto para Ubuntu como para Mac OS X. La razón es que presenta algunas facilidades para la instalación y, a fin de cuentas, representa el futuro.

IPython en Ubuntu mediante pip

Al ejecutar la orden de instalación recomendada en la página oficial, concretamente la orden

sudo pip install "ipython[notebook]"

fracasa la instalación de la librería pyzmq con el siguiente mensaje:

 error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
 ----------------------------------------
 Command "/usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-23a2_por/pyzmq/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" fetch_libzmq install --record /tmp/pip-wmhla3sg-record/install-record.txt --single-version-externally-managed --compile --zmq=bundled" failed with error code 1 in /tmp/pip-build-23a2_por/pyzmq

Una vez analizado se ve que la razón de esta dificultad es que faltan librerías de desarrollo de Python de las provistas en los paquetes alojados en los repositorios de Ubuntu.

Es tan simple como instalar, si no estuviesen ya instalados, los paquetes que se sugieren a continuación:

sudo apt install python-dev
sudo apt install python3-dev

y posteriormente instalar g++:

sudo apt install g++

Es posible que nuestro sistema no cuente aún con la herramienta pip. Para disponer de ella haremos lo siguiente:

sudo easy_install3 pip

Y con esto podremos ya llevar a cabo la instalación sugerida según la orden:

sudo pip install "ipython[notebook]"

Por supuesto que nada de esto sería preciso si tan solo hubiéramos optado por la instalación básica de IPython:

sudo pip install ipython

Seguidamente, si queremos instalar la librería de Python llamada matplotlib necesitaremos el paquete libfreetype6-dev:

sudo apt install libfreetype6-dev

En algunas distribuciones, por ejemplo Ubuntu Server 16.04, no disponemos del paquete pkg-config en la instalación básica, por lo que habría que instalarlo en este momento

sudo apt install pkg-config python3-tk

con lo que ya podremos hacer la instalación de matplotlib con pip:

sudo pip install matplotlib

Si nos faltase la librería matplotlib, al intentar instalarla con pip tendríamos al final un mensaje de error que acaba en:

TypeError: unorderable types: str() < int()

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-6fus7qwz/matplotlib

Convendría, a nuestro entender, instalar sympy por lo que ejecutaremos:

sudo pip install sympy

Otra librería conveniente es scipy . Para ellas necesitaremos los paquetes instalados ejecutando:

sudo apt install libblas-dev liblapack-dev
sudo apt install python-dev gfortran

y ya con esto instalamos scipy:

sudo pip install scipy

Si queremos instalar pygraphviz necesitamos la librería libgraphviz-dev:

sudo apt install libgraphviz-dev graphviz python3-dev

tras lo cual ejecutaremos:

sudo pip install pygraphviz
sudo pip install graphviz

También debemos instalar networkx y nxpd:

sudo pip install networkx
sudo pip install nxpd

También podemos instalar simpy, gmpy y pytest:

sudo pip install simpy
sudo pip install gmpy
sudo pip install pytest

IPython en Mac OS X mediante pip

En esta parte final del post seguimos instalando para Python 3 bajo la hipótesis de que tenemos en nuestro ordenador: Mac OS X “El Capitan” y que ya contamos con brew instalado en el sistema. Para Yosemite debería funcionar todo, pero no está probado.

Es posible que en su sistema alguna de las siguientes órdenes deban ser dadas como superusuario, es decir, anteponiendo sudo, téngalo en cuenta.

Lo más probable es que no tengamos Pyhton 3 en el sistema, por lo que habríamos de procecer a instalarlo. Para ello ejecutaremos desde la terminal:

brew install python3

Si lo tuviésemos ya, ignoraríamos esta orden. Lo siguiente sería la instalación propiamente dicha mediante pip

sudo pip3 install ipython pyzmq jinja2 tornado
sudo pip3 install "ipython[notebook]"

Hecho esto, podemos probar el resultado ejecutando en terminal:

ipython notebook

Ello debería lanzarnos en el navegador el entorno Jupyter. Como hemos explicado antes, es muy conveniente tener las librerías usuales en el cálculo científico-técnico:

pip3 install sympy
pip3 install numpy
pip3 install matplotlib
pip3 install scipy

La instalación de pygraphviz requiere la librería graphviz. Para ello:

brew install graphviz
sudo pip3 install --install-option="--include-path=/opt/local/include" --install-option="--library-path=/opt/local/lib" pygraphviz


sudo pip3 install networkx
sudo pip3 install nxpd

También podemos instalar simpy, gmpy y pytest:

sudo pip3 install simpy
sudo pip3 install gmpy  
sudo pip3 install pytest

Resumen sin Comentarios para el caso de Ubuntu

Hemos hecho la siguiente instalación (en algunos de los pasos deberemos tener paciencia, mucha paciencia):

sudo apt install python-dev

sudo apt install python3-dev

sudo apt install g++

sudo easy_install3 pip

sudo pip install "ipython[notebook]"

sudo apt install libfreetype6-dev

sudo apt install pkg-config 

sudo pip install matplotlib

sudo pip install sympy

sudo apt install libblas-dev liblapack-dev

sudo apt install python-dev gfortran

sudo pip install scipy

sudo apt install libgraphviz-dev graphviz python3-dev

sudo pip install pygraphviz

sudo pip install graphviz

sudo pip install networkx

sudo pip install nxpd

sudo pip install simpy
sudo pip install gmpy

sudo pip install pytest

Resumen sin Comentarios para el caso de Mac OS X “El Capitan”

brew install python3
pip3 install ipython pyzmq jinja2 tornado
sudo pip3 install "ipython[notebook]"

ipython notebook

pip3 install sympy
pip3 install numpy
pip3 install matplotlib
pip3 install scipy

brew install graphviz
sudo pip3 install --install-option="--include-path=/opt/local/include" --install-option="--library-path=/opt/local/lib" pygraphviz

sudo pip3 install networkx
sudo pip3 install nxpd

sudo pip3 install simpy
sudo pip3 install gmpy
sudo pip3 install pytest

Y … esto es todo por hoy.