57

我正在使用亚马逊 ec2 ubuntu 11.04 服务器

 sudo pip install python-snappy 

我也尝试下载包并输入“sudo python setup.py install”

我得到了错误:

  running build
  running build_ext
  building 'snappy' extension
  gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c snappymodule.cc -o build/temp.linux-x86_64-2.7/snappymodule.o
  cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]
  snappymodule.cc:31:22: fatal error: snappy-c.h: No such file or directory
  compilation terminated.
  error: command 'gcc' failed with exit status 1

我怎样才能摆脱这个错误?

来源:https ://github.com/andrix/python-snappy

4

13 回答 13

133

您可以使用以下命令安装 Snappy C 库:

基于 DEB: sudo apt-get install libsnappy-dev

基于 RPM: sudo yum install libsnappy-devel

酿造: brew install snappy

于 2013-12-19T09:45:38.493 回答
44

根据回购

如何在 Mac OS X 上安装它?

有几次报告(问题 #7 和 #23)无法在 Mac 中正确安装库。程序应该是,

$ brew install snappy # snappy library from Google 
$ CPPFLAGS="-I/usr/local/include -L/usr/local/lib" pip install python-snappy
于 2017-01-17T22:01:58.480 回答
20

你需要 Snappy C

然后你必须安装 python-snappy 包装器。

看来您没有安装 Snappy-C 库

试试吧..因为已经有一个人对你的帖子发表了评论

更新:请参阅下面更受好评的帖子,其中包括在基于 DEB、基于 RPM 和 Mac OS (Brew) 上的安装说明。

于 2012-07-10T15:33:27.433 回答
3
  1. 您可以在此处下载 snappy lib:https ://code.google.com/p/snappy/
  2. 提取它
  3. 通过命令行安装如下: $: ./configure $: make $: make install
  4. 安装 python-snappy: $: pip install python-snappy
于 2015-07-15T10:05:35.910 回答
3

我在安装时遇到了一些麻烦。最后下载了https://www.lfd.uci.edu/~gohlke/pythonlibs/提供的预构建内容,一切顺利。(用于 Python 扩展包的非官方 Windows 二进制文件)

于 2018-10-24T09:59:32.207 回答
3

对于带有 Python 3.X 的 Oracle Linux:

您需要启用 optional_latest 存储库作为第一步,

  1. 用于启用以下 repo

    $ yum-config-manager --enable ol7_optional_latest

    “ol7_optional_latest” repo 将启用 yum 查找。

  2. 然后使用安装软件包,

    $ yum -y install gcc gcc-c++ snappy snappy-devel

  3. 然后用 pip 安装 python-snappy 包,

    $ pip3 install python-snappy

于 2020-02-27T13:52:25.470 回答
2

在 El Capitan 上安装时遇到很多问题,错误提示找不到 snappy-ch 文件。

必须从 tar.gz 文件https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz安装 snappy

解压并运行

./configure
make
make install

它会将头文件放入 /usr/local/include

然后需要为cc编译器设置FLAGS来查找头文件:

export DYLD_LIBRARY_PATH=/usr/local/include
export CPPFLAGS="-I/usr/local/include/snappy-c.h"
export CFLAGS="-I/usr/local/include/snappy-c.h"
export CXXFLAGS="-I/usr/local/include/snappy-c.h"
export LDFLAGS="-L/usr/local/lib"

然后我从 egg 文件 https://pypi.python.org/packages/b1/fe/1d632cdac5dbb5ce84db778af7f733eb469130d8cf4c02f6cd9057a96768/snappy-2.4.1-py2.7-macosx-10.5-intel.egg#md15466fbfebfe373安装了python-snappy

你可以试试,pip install python-snappy 但它最初找不到头文件,所以我去找了鸡蛋文件

安装鸡蛋:

easy_install <eggfile>
python setup.py build
python setup.py install
于 2016-07-27T22:19:23.017 回答
2

您需要检查输出

rpm -q snappy-devel

如果它不存在,则使用以下命令安装它:

yum install snappy-devel
于 2016-09-20T07:21:37.080 回答
2

如果你在Mac OS X Catalina上,你可以安装

brew install snappy
CPPFLAGS="-I/usr/local/include -L/usr/local/lib -stdlib=libc++ " pip install python-snappy

正如https://github.com/andrix/python-snappy所建议的那样

于 2020-03-03T01:36:01.057 回答
1

修复 macOS M1。您必须定义 lib 的绝对路径并包含 snappy。

brew install snappy
pip install \                               
  --upgrade --ignore-installed \
  python-snappy==0.5.4 \
  --global-option=build_ext \
  --global-option="-I/opt/homebrew/Cellar/snappy/1.1.9/include" \
  --global-option="-L/opt/homebrew/Cellar/snappy/1.1.9/lib"
于 2021-12-07T08:48:57.610 回答
0

这解决了我的问题:

yum install gcc-c++  
于 2018-12-27T09:20:08.563 回答
0

我在这方面遇到了一段时间的麻烦。仅供参考,我正在尝试安装 Crossbar(https://crossbar.io/docs/Installation-on-Linux/

我做了一堆谷歌搜索并搞砸了很多。我正在使用 Python 3.7.4,我认为解决我的问题的是:

sudo yum install python-devel

如果那不起作用,请尝试

sudo yum install python3-devel

来源:

https://github.com/giampaolo/psutil/issues/1143#issuecomment-475354786

https://github.com/giampaolo/psutil/issues/1143

于 2019-09-09T01:18:18.740 回答
0

要在安装了 MacPorts 的 Mac OS X中解决此问题,您可以执行以下操作:

$ sudo port install snappy
$ CPPFLAGS="-I/opt/local/include -L/opt/local/lib" pip install python-snappy
于 2020-06-06T21:45:58.527 回答