Je voulais utiliser iPython Notebook dans Python 3 sur Ubuntu 14.04. Parce que j'ai à la fois Python 2.7 et Python 3.4 installés sur mon système - et pour d'autres raisons spécifiques à l'implémentation - j'ai décidé d'utiliser un environnement virtuel Python (avec virtualenv
). Très peu de choses ont été écrites sur ce sujet jusqu'à présent...
- Comment installer correctement le paquet Python pyzmq ?
- Comment installer le dernier notebook IPython dans Ubuntu 12.04 ?
Ces rapports ne traitent pas spécifiquement de Python 3 et des environnements virtuels. De plus, le officiel et divers guides non officiels à l'installation d'iPython Notebook ne traitent pas non plus de ce cas d'utilisation.
Le principal problème que j'ai rencontré concerne la bibliothèque ZMQ. Pour installer la bibliothèque et les liens Python dans tout le système, j'ai utilisé apt-get
:
sudo apt-get install libzmq3 libzmq3-dev python3-zmq
Mais quand j'ai essayé pip install ipython[notebook]
soit à l'intérieur ou à l'extérieur de mon virtualenv
l'installation échoue avec le statut de sortie 1 et les avertissements :
Warning: Detected ZMQ version: 4.0.4, but pyzmq targets ZMQ 4.0.5.
Warning: libzmq features and fixes introduced after 4.0.4 will be unavailable.
J'ai confirmé dans le gestionnaire de paquets Synaptic que le paquet libzmq3
pour Ubuntu est seulement la version 4.0.4. Comme alternative, J'ai essayé cette solution ayant pyzmq
construire sa propre libzmq
dépendance :
pip install pyzmq --install-option="--zmq=bundled"
Mais cela a échoué parce qu'il ne pouvait pas trouver un certain fichier d'en-tête :
buildutils/initlibsodium.c:10:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Ensuite, j'ai construit libzmq
version 4.0.5 de la source.
wget http://download.zeromq.org/zeromq-4.0.5.tar.gz
tar -xzvf zeromq-4.0.5.tar.gz && rm zeromq-4.0.5.tar.gz
cd /usr/local/zmq/zeromq-4.0.5
./configure
make -j 6
sudo make install
Aucun problème rencontré. Après cela, j'ai essayé d'installer pyzmq
dans mon environnement virtuel avec :
easy_install pyzmq
J'ai aussi essayé de construire pyzmq
de la source. Dans les deux cas, j'ai pu voir à partir de la sortie que la bonne version de ZMQ (4.0.5) a été détectée, mais l'installation a échoué parce que Cython n'était pas installé (une dépendance pas bien documentée pour la construction de pyzmq
à mon avis).
Après avoir installé Cython pour Python 3...
sudo apt-get install cython3
J'ai essayé d'installer pyzmq
à nouveau avec pip
et avec easy_install
à la fois à l'intérieur et à l'extérieur de l'environnement virtuel ; ça ne fonctionnait toujours pas. Ce message a été délivré malgré cython3
en cours d'installation :
Fatal: Cython-generated file 'zmq/backend/cython/_device.c' not found.
Cython >= 0.16 is required to compile pyzmq from a development branch.
Please install Cython or download a release package of pyzmq.
Et cette structure de fichier :
$ ls -l zmq/backend/cython/
checkrc.pxd context.pxd __init__.py _poll.pyx utils.pxd
constant_enums.pxi context.pyx libzmq.pxd rebuffer.pyx utils.pyx
constants.pxi _device.pyx message.pxd socket.pxd _version.pyx
constants.pyx error.pyx message.pyx socket.pyx