用Cygwin安装pzmq

Jak*_*ies 8 python windows gcc cygwin ipython-notebook

有两天我一直在努力安装pyzmq,我真的不确定是什么问题.

我之后收到的错误消息:

pip install pyzmq
Run Code Online (Sandbox Code Playgroud)

是:

 error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

我安装了gcc.

which gcc
/usr/bin/gcc
Run Code Online (Sandbox Code Playgroud)

Python安装在同一位置.我真的很难找到解决方案.

编辑:添加到错误的输出,这是进一步描述错误的输出:

 bundled/zeromq/src/signaler.cpp:62:25: fatal error: sys/eventfd.h: No  such file or directory
  #include <sys/eventfd.h>
                         ^
compilation terminated.
error: command 'gcc' failed with exit status 1

----------------------------------------
Command "/usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip- build-INbMj2/pyzmq/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), 
__file__, 'exec'))" install --record /tmp/pip-n8hQ_h-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-INbMj2/pyzmq
Run Code Online (Sandbox Code Playgroud)

编辑二:遵循https://github.com/zeromq/pyzmq/issues/391的安装说明

pip install pyzmq --install-option="fetch_libzmq"
Run Code Online (Sandbox Code Playgroud)

收益率:

#include <sys/eventfd.h>
                         ^
compilation terminated.
error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

下一个:

pip install --no-use-wheel pyzmq --global-option='fetch_libzmq' --install-option='--zmq=bundled'
Run Code Online (Sandbox Code Playgroud)

产量:

#include <sys/eventfd.h>
                         ^
compilation terminated.
error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

tha*_*van 10

python3-zmq是cygwin中的一个包.假设您正在尝试安装python 3,如果您使用的是apt-cyg软件包管理器,则可以使用它进行安装

apt-cyg install python3-zmq
Run Code Online (Sandbox Code Playgroud)


wil*_*mpa 9

使用pip在Cygwin中安装IPython是痛苦的,但并非不可能.@ahmadia对zeromq GitHub项目的评论给出了安装pyzmq的说明:https://github.com/zeromq/pyzmq/issues/113#issuecomment-25192831

评论说它适用于64位Cygwin但是这些指令对我来说在32位上运行良好.我将总结假设安装到/ usr/local的步骤.首先下载并解压缩zeromq和pyzmq的tar包.然后:

# in zeromq directory
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
./configure --without-libsodium
make
gcc -shared -o cygzmq.dll -Wl,--out-implib=libzmq.dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive src/.libs/libzmq.a -Wl,--no-whole-archive -lstdc++
install include/zmq.h  /usr/local/include
install include/zmq_utils.h  /usr/local/include
install cygzmq.dll /usr/local/bin
install libzmq.dll.a /usr/local/lib

# in pyzmq directory
python setup.py build_ext --zmq=/usr/local --inplace
python setup.py install --zmq=/usr/local --prefix=/usr/local

# finally!
pip install ipython[all]
Run Code Online (Sandbox Code Playgroud)

在那之后,pip install ipython[all]只是工作,包括笔记本.

  • 为我工作,除了`libzmq.a`在`libs /`而不是`src/.libs /`. (3认同)

小智 8

我自己也遇到了这个问题.经过大量研究后得出以下结论:

cygwin不支持该eventfd功能.如果您办理登机手续,/usr/include/sys您将发现eventfd.h不存在.我不确定为什么cygwin不支持这个 - 但是我能够找到https://cygwin.com/ml/cygwin/2012-10/msg00198.html,它暗示了这个以及缺少的头文件我的结论是我们是SOL,直到这个时候才被添加.

有关更多信息,请参阅包含eventfd.h的glibc的github repo:https: //github.com/lattera/glibc/tree/a2f34833b1042d5d8eeb263b4cf4caaea138c4ad/sysdeps/unix/sysv/linux/sys

以下是cygwin附带的核心开发文件列表(注意eventfd是缺少的文件之一):https://cygwin.com/cgi-bin2/package-grep.cgi?grep = cygwin-devel&arch = x86

顺便说一句 - 如果您正在尝试安装ipython笔记本(这就是我遇到此错误的方式),作为一种解决方法,我使用了wakari.io,它为ipython笔记本提供了一个Web界面.


Fre*_*ace 6

这是一个旧的,但我今天遇到了同样的错误信息.通过使用Cygwin默认安装过程简单地安装libzmq5libzmq-devel(运行时和开发)来解决.