Art*_*hur 3 python python3 virtualenv ipython
我想在 Ubuntu 14.04 上的 Python 3 中使用 iPython Notebook。因为我的系统上同时安装了 Python 2.7 和 Python 3.4 - 并且出于其他特定于实现的原因 - 我决定使用 Python 虚拟环境(带有virtualenv)。到目前为止,关于这个主题的文章很少......
这些报告并不专门处理 Python 3 和虚拟环境。此外,安装 iPython Notebook的官方和各种非官方指南也不涉及这个用例。
我遇到的主要问题是 ZMQ 库。要在系统范围内安装库和 Python 绑定,我使用了apt-get:
sudo apt-get install libzmq3 libzmq3-dev python3-zmq
Run Code Online (Sandbox Code Playgroud)
但是当我在我的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.
Run Code Online (Sandbox Code Playgroud)
我在 Synaptic Package Manager 中确认libzmq3Ubuntu的包只有 4.0.4 版。作为替代方案,我尝试了此修复程序,并pyzmq构建了自己的libzmq依赖项:
pip install pyzmq --install-option="--zmq=bundled"
Run Code Online (Sandbox Code Playgroud)
但这失败了,因为它找不到某个头文件:
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
Run Code Online (Sandbox Code Playgroud)
接下来,我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
Run Code Online (Sandbox Code Playgroud)
没有遇到任何问题。在此之后,我尝试pyzmq在我的虚拟环境中安装:
easy_install pyzmq
Run Code Online (Sandbox Code Playgroud)
我也尝试pyzmq从源代码构建。在这两种情况下,我都可以从输出中看到检测到正确的 ZMQ 版本(4.0.5),但安装失败,因为我没有安装 Cython(pyzmq在我看来,这是一个没有很好记录的构建依赖项) .
为 Python 3 安装 Cython 后...
sudo apt-get install cython3
Run Code Online (Sandbox Code Playgroud)
我尝试安装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.
Run Code Online (Sandbox Code Playgroud)
而这个文件结构:
$ 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
Run Code Online (Sandbox Code Playgroud)
小智 5
“Python.h”错误消息表明您缺少python3-dev构建任何 Python 扩展(用 C 编写的 Python 模块)所需的包,您可以通过以下方式获得:
apt-get install python3-dev
Run Code Online (Sandbox Code Playgroud)
要从头开始运行:
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
Run Code Online (Sandbox Code Playgroud)
安装的软件包:
python3 -m venv。我在基本ubuntu:14.04docker 容器中运行了上述命令,以验证它们是否足以在 virtualenv 中成功构建 pyzmq。
| 归档时间: |
|
| 查看次数: |
15217 次 |
| 最近记录: |