Ubuntu 14.04のPython 3でiPython Notebookを使用したかった。 Python 2.7とPython 3.4の両方をシステムにインストールしているため、およびその他の実装固有の理由により、Python仮想環境を使用することにしました(virtualenv
を使用)。これまでのところ、このトピックについてはほとんど書かれていません...
これらのレポートは、Python 3および仮想環境を特に処理しません。さらに、iPython Notebookをインストールするための official およびさまざまな nofficial guides も、このユースケースに対応していません。
私が遭遇した主な問題はZMQライブラリにあります。ライブラリとPythonバインディングをシステム全体にインストールするには、apt-get
:
Sudo apt-get install libzmq3 libzmq3-dev python3-zmq
しかし、virtualenv
の内部または外部でpip install ipython[notebook]
を試行した場合、インストールは終了ステータス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.
Synaptic Package Managerで、Ubuntuのlibzmq3
パッケージはバージョン4.0.4のみであることを確認しました。代わりに Iこの修正を試しました 、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
をビルドしてみました。どちらの場合も、出力から適切なZMQバージョン(4.0.5)が検出されたことがわかりましたが、Cythonがインストールされていなかったためインストールが失敗しました(私の意見では、pyzmq
を構築するための文書化されていない依存関係) )。
Python 3のCythonをインストールした後...
Sudo apt-get install cython3
pyzmq
とeasy_install
を使用して、仮想環境の内外でpip
を再度インストールしようとしました。それでも動作しませんでした。 このメッセージは、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 Notebookをインストールすることを検討しました。以前にシステム全体にpyzmq
をインストールしようとしましたが、これでは十分ではありませんでした。
iPython Notebookを仮想環境外にインストールすることを検討したときに、「pip
を取得してPython 2.7とPython 3.4を区別するにはどうすればよいですか? I検索して この素晴らしい答えを見つけました 。実際、私の中心的な問題はpip
に関連していたことがわかりました。 Python 3バージョンに対応するpip
をインストールしました。
Sudo apt-get install python3-setuptools
Sudo easy_install3 pip
その後、pyzmq
とipython[notebook]
の両方をインストールすると、仮想環境内で完全に機能しました。
pip3.4 install pyzmq
pip install ipython[notebook]
pip3.4
にipython[notebook]
の代わりに誤ってpip
を使用しましたが、とにかく動作します:
(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
ただし、Python 3仮想環境にpyzmq
をインストールするには、pip3.4
を使用する必要がありました。
「Python.h」エラーメッセージは、Python拡張機能(Cで記述されたPythonモジュール)をビルドするために必要なpython3-dev
packageがないことを示しています。
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
dockerコンテナーで実行して、virtualenvでpyzmqを正常にビルドするのに十分であることを確認しました。