easy_install pyzmq,cygwin。错误:安装脚本退出并显示错误:命令'gcc'失败,退出状态为1

时间:2014-01-23 12:02:56

标签: python gcc cygwin pyzmq

我正在尝试在cygwin中运行ipython notebook。为此我需要安装pyzmq。然而,这不起作用。我已经附上了问题,有人可以帮忙吗?

$ easy_install pyzmq
Searching for pyzmq
Reading http://pypi.python.org/simple/pyzmq/
Reading http://github.com/zeromq/pyzmq
Reading http://github.com/zeromq/pyzmq/downloads
Reading http://github.com/zeromq/pyzmq/releases
Best match: pyzmq 14.0.1
Downloading https://pypi.python.org/packages/source/p/pyzmq/pyzmq-14.0.1.zip#md5=014e44ddcb1ede81a9087af5ec49470d
Processing pyzmq-14.0.1.zip
Writing /tmp/easy_install-CZx3rY/pyzmq-14.0.1/setup.cfg
Running pyzmq-14.0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-CZx3rY/pyzmq-14.0.1/egg-dist-tmp-E_MUa0
no previously-included directories found matching 'docs/build'
no previously-included directories found matching 'docs/gh-pages'
warning: no directories found matching 'bundled/uuid'
warning: no previously-included files found matching 'bundled/uuid/Makefile*'
warning: no previously-included files found matching 'bundled/zeromq/src/Makefile*'
warning: no previously-included files found matching 'bundled/zeromq/src/platform.hpp'
warning: no previously-included files found matching 'zmq/libzmq*'
warning: no previously-included files matching '__pycache__/*' found anywhere in distribution
warning: no previously-included files matching '.deps/*' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
warning: no previously-included files matching '.git*' found anywhere in distribution
warning: no previously-included files matching '.DS_Store' found anywhere in distribution
warning: no previously-included files matching '.mailmap' found anywhere in distribution
Did not find libzmq via pkg-config:
Package libzmq was not found in the pkg-config search path.
Perhaps you should add the directory containing `libzmq.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libzmq' found

************************************************
Configure: Autodetecting ZMQ settings...
    Custom ZMQ dir:
build/temp.cygwin-1.7.27-x86_64-2.7/scratch/vers.c:4:17: fatal error: zmq.h: No such file or directory
 #include "zmq.h"
                 ^
compilation terminated.

error: command 'gcc' failed with exit status 1

Failed with default libzmq, trying again with /usr/local
************************************************
Configure: Autodetecting ZMQ settings...
    Custom ZMQ dir:       /usr/local
build/temp.cygwin-1.7.27-x86_64-2.7/scratch/vers.c:4:17: fatal error: zmq.h: No such file or directory
 #include "zmq.h"
                 ^
compilation terminated.

error: command 'gcc' failed with exit status 1

************************************************
Warning: Failed to build or run libzmq detection test.

If you expected pyzmq to link against an installed libzmq, please check to make sure:

    * You have a C compiler installed
    * A development version of Python is installed (including headers)
    * A development version of ZMQ >= 2.1.4 is installed (including headers)
    * If ZMQ is not in a default location, supply the argument --zmq=<path>
    * If you did recently install ZMQ to a default location,
      try rebuilding the ld cache with `sudo ldconfig`
      or specify zmq's location with `--zmq=/usr/local`

You can skip all this detection/waiting nonsense if you know
you want pyzmq to bundle libzmq as an extension by passing:

    `--zmq=bundled`

I will now try to build libzmq as a Python extension
unless you interrupt me (^C) in the next 10 seconds...

 1...
************************************************
Using bundled libzmq
already have bundled/zeromq
attempting ./configure to generate platform.hpp
Warning: failed to configure libzmq:
/bin/sh: ./configure: No such file or directory

staging platform.hpp from: /tmp/easy_install-CZx3rY/pyzmq-14.0.1/buildutils/include_linux
/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lsodium
collect2: error: ld returned 1 exit status
Warning: libsodium not found, zmq.CURVE security will be unavailable
************************************************
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default]
In file included from bundled/zeromq/src/poller.hpp:42:0,
                 from bundled/zeromq/src/socket_base.hpp:30,
                 from bundled/zeromq/src/ctx.cpp:31:
bundled/zeromq/src/epoll.hpp:28:23: fatal error: sys/epoll.h: No such file or directory
 #include <sys/epoll.h>
                       ^
compilation terminated.
error: Setup script exited with error: command 'gcc' failed with exit status 1

2 个答案:

答案 0 :(得分:0)

如果您使用的是Windows,请安装预编译的Windows二进制文件。

例如来自Gohlke的Windows二进制文件的精彩目录:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyzmq

答案 1 :(得分:0)

我刚刚经历了同样的过程。正如PyZMQ Readme.md所说:

  

编译pyzmq时(例如在Linux上使用pip安装),   通常建议通过自制软件,apt,yum等单独安装zeromq。   如果这不可用,pyzmq将尝试将libzmq构建为Python扩展,   虽然这不能保证有效。

在我的情况下,在你的情况下,它没有工作。您可以使用Cygwin安装zeromq或自行下载:http://zeromq.org/intro:get-the-software(我选择了最新的稳定版本4.0.4)

unztar,如果你愿意,可以配置(--prefix=/my/home/local),make install

然后你需要export PKG_CONFIG_PATH=/my/home/local/lib/pkgconfig(或者你的默认lib目录,例如/usr/local/lib/pkgconfig)。

确保此路径存在:

/my/home/local/lib/pkgconfig/libzmq.pc

最后pip install pyzmq,它应该选择您刚刚构建的libzmq.pc文件。