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 post en Wildunix. 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

pip3 install --user "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++

En primer lugar instalaremos pip3, haremos lo siguiente:

sudo apt install python3-pip

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

pip3 install --user "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:

pip3 install --user 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 pip3:

sudo pip3 install --user 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:

pip3 install --user 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:

pip3 install --user scipy

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

sudo apt install libgraphviz-dev graphviz python3-dev

tras lo cual ejecutaremos:

pip3 install --user pygraphviz
pip3 install --user graphviz

También debemos instalar networkx y nxpd:

pip3 install --user networkx
pip3 install --user nxpd

También podemos instalar simpy, gmpy y pytest:

pip3 install --user simpy
sudo apt install python3-gmpy2
pip3 install --user 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. Puede ocurrir que una operación de mantenimiento y regeneración de permisos en el sistema Mac OS X, surjan problemas para la instalación completa de python3. Si detectara esto, tras la orden:

brew install python3

ejecute estando dentro de /usr/local:

sudo chown -R $(whoami) $(brew --prefix)/*
brew postinstall python3

Lo siguiente sería la instalación propiamente dicha mediante pip

pip3 install --user ipython pyzmq jinja2 tornado
pip3 install --user "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 --user sympy
pip3 install --user numpy
pip3 install --user matplotlib
pip3 install --user scipy

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

brew cask install adoptopenjdk
brew install svn
brew install graphviz

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


pip3 install --user networkx
pip3 install --user nxpd

Podemos instalar simpy y pytest:

pip3 install --user simpy
pip3 install --user pytest

Para instalar gmpy haremos lo siguiente:

brew install mpfr
brew install libmpc
pip3 install --user gmpy2

Para instalar pdfminer.six podemos instalar ocrmypdf mediante la siguiente orden:

pip3 install --user ocrmypdf

Resumen sin Comentarios para el Caso de Sistemas Basados en 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 apt install python3-pip

sudo apt install libfreetype6-dev

sudo apt install pkg-config python3-tk

pip3 install --user matplotlib

pip3 install --user "ipython[notebook]"

pip3 install --user sympy

sudo apt install libblas-dev liblapack-dev

sudo apt install python-dev gfortran

pip3 install --user scipy

sudo apt install libgraphviz-dev graphviz python3-dev

pip3 install --user pygraphviz

pip3 install --user graphviz

pip3 install --user networkx

pip3 install --user nxpd

pip3 install --user simpy

sudo apt install python3-gmpy2

pip3 install --user pytest

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

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

ipython notebook

pip3 install --user sympy
pip3 install --user numpy
pip3 install --user matplotlib
pip3 install --user scipy

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

pip3 install --user networkx
pip3 install --user nxpd

pip3 install --user simpy
pip3 install --user pytest

brew install --user mpfr
brew install --user libmpc
pip3 install --user gmpy2

pip3 install --user ocrmypdf

Y … esto es todo por hoy.