Я хотел использовать iPython Ноутбук в Python 3 на Ubuntu 14.04. Поскольку у меня есть и Python 2.7 и Python 3.4, установленный в моей системе - и по другим определенным для реализации причинам - я решил использовать виртуальную среду Python (с virtualenv
). Очень мало было записано об этой теме до сих пор...
Эти отчеты конкретно не обрабатывают Python 3 и виртуальные среды. Кроме того, официальные и различные неофициальные руководства по установке iPython Ноутбук не имеют дело с этим вариантом использования, также.
Основная проблема, с которой я встретился, с библиотекой ZMQ. Для установки библиотеки и привязки Python в масштабе всей системы, я использовал apt-get
:
sudo apt-get install libzmq3 libzmq3-dev python3-zmq
Но когда я попробовал pip install ipython[notebook]
, любая внутренняя или внешняя часть мой virtualenv
, установка перестала бы работать со статусом выхода 1 и предупреждения:
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.
Я подтвердил в Синаптическом Диспетчере пакетов что libzmq3
пакет для Ubuntu является только версией 4.0.4. Как альтернатива, я попробовал эту фиксацию, имея pyzmq
создайте его собственное libzmq
зависимость:
pip install pyzmq --install-option="--zmq=bundled"
Но это перестало работать, потому что это не могло найти определенный заголовочный файл:
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
Затем, я создал libzmq
версия 4.0.5 из источника.
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
Ни с какими проблемами не встречаются. После этого я пытался установить pyzmq
в моей виртуальной среде с:
easy_install pyzmq
Я также пытался создать pyzmq
из источника. В обоих случаях я видел от вывода, что надлежащая версия (4.0.5) ZMQ была обнаружена, но установка перестала работать, потому что у меня не было Cython установленным (not-well-documented зависимость для создания pyzmq
, по-моему).
После установки Cython для Python 3...
sudo apt-get install cython3
Я пытался установить pyzmq
снова с pip
и с easy_install
как внутри, так и снаружи виртуальной среды; это все еще не работало. Это сообщение было передано несмотря на cython3
быть установленным:
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.
И эта файловая структура:
$ 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
Наконец, я считал установку iPython Ноутбуком в масштабе всей системы (вне виртуальной среды). Я ранее попробовал просто установку pyzmq
в масштабе всей системы, но это не было достаточно.
Когда я считал установку iPython Ноутбуком вне виртуальной среды, я понял, "Как я добираюсь pip
различать между Python 2.7 и Python 3.4?" Я пошел, ища и нашел этот превосходный ответ. На самом деле оказывается, что моя центральная проблема была связана с pip
. Я установил pip
соответствие моей версии Python 3:
sudo apt-get install python3-setuptools
sudo easy_install3 pip
И после этого, установка обоих pyzmq
и ipython[notebook]
работавший отлично в моей виртуальной среде:
pip3.4 install pyzmq
pip install ipython[notebook]
Я случайно использовал pip
вместо pip3.4
для ipython[notebook]
но это работает так или иначе:
(my-virtual-env)me@computer:~$ pip freeze
Jinja2==2.7.3
MarkupSafe==0.23
certifi==14.05.14
ipython==2.3.1
pyzmq==14.4.1
tornado==4.0.2
Однако использование pip3.4
было необходимо для получения pyzmq
установленный в виртуальной среде Python 3.
Сообщение об ошибке "Python.h" указывает, что Вы отсутствуете python3-dev
пакет, который необходимо создать любые расширения Python (модули Python, записанные в C), с которым можно добраться:
apt-get install python3-dev
Для подъема и работающий с нуля:
apt-get update && apt-get install python3-dev python3-pip build-essential libzmq3-dev
pip3 install virtualenv
virtualenv -p $(which python3) myenv
source myenv/bin/activate
pip install pyzmq
python -c 'import zmq; print(zmq.zmq_version())'
# 4.0.4
установленные пакеты:
python3 -m venv
. я выполнил вышеупомянутые команды в основе ubuntu:14.04
контейнер докера, чтобы проверить, что они достаточны для успешного создания pyzmq в virtualenv.