Как установить pyzmq для iPython Ноутбука в виртуальной среде Python 3?

Я хотел использовать 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 
3
задан 13 April 2017 в 15:23

2 ответа

Наконец, я считал установку 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.

0
ответ дан 1 December 2019 в 15:38

Сообщение об ошибке "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

установленные пакеты:

  • существенный для сборки: компиляторы и заголовки для создания вещей на Ubuntu.
  • python3-dev: заголовки (Python.h), необходимый для компиляции любых расширений Python.
  • libzmq3-dev: libzmq библиотека и ее заголовки. Это является дополнительным, но рекомендуемое. PyZMQ свяжется против libzmq, найденного в системе, если это может, иначе это создаст сам libzmq как расширение Python.
  • зернышко, virtualenv: не Должен быть необходим, но привыкнуть к обходному решению ошибка Ubuntu , который повреждается python3 -m venv.

я выполнил вышеупомянутые команды в основе ubuntu:14.04 контейнер докера, чтобы проверить, что они достаточны для успешного создания pyzmq в virtualenv.

5
ответ дан 1 December 2019 в 15:38

Другие вопросы по тегам:

Похожие вопросы: