如何在Windows 10上安装snappy C库,以便与Anaconda中的python-snappy一起使用?

时间:2017-03-23 14:50:12

标签: python python-2.7 install anaconda snappy

我想在Windows 10上的Anaconda 2安装中使用pip安装parquet for python

安装时我遇到了here所述的错误,安装程序无法找到snappy-c.h

在答案中没有提到如何在Windows上安装它。

我从http://google.github.io/snappy/下载了Snappy库,现在我被卡住了。

从我的错误消息中我会假设头文件需要在C:\Users\...\AppData\Local\Continuum\Anaconda2\include中,但在下层归档文件头和库文件中只是在同一个文件夹中。

如何在Anaconda文件夹中正确安装这些文件?

完整的错误消息:

Building wheels for collected packages: python-snappy
  Running setup.py bdist_wheel for python-snappy ... error
  Complete output from command C:\Users\...\AppData\Local\Continuum\Anaconda2\python.exe -u -c "import setup
tools, tokenize;__file__='c:\\users\\...\\appdata\\local\\temp\\pip-build-kl4zef\\python-snappy\\setup.py';f=ge
tattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec
'))" bdist_wheel -d c:\users\...\appdata\local\temp\tmpt8fz9bpip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-2.7
  copying snappy.py -> build\lib.win-amd64-2.7
  running build_ext
  building '_snappy' extension
  creating build\temp.win-amd64-2.7
  creating build\temp.win-amd64-2.7\Release
  C:\Users\...\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nol
ogo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Users\...\AppData\Local\Continuum\Anaconda2\include -IC:\Users\...
\AppData\Local\Continuum\Anaconda2\PC /Tpsnappymodule.cc /Fobuild\temp.win-amd64-2.7\Release\snappymodule.obj
  snappymodule.cc
  snappymodule.cc(31) : fatal error C1083: Cannot open include file: 'snappy-c.h': No such file or directory
  error: command 'C:\\Users\\...\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\V
C\\Bin\\amd64\\cl.exe' failed with exit status 2

3 个答案:

答案 0 :(得分:15)

经过一段漫长而令人沮丧的时间尝试不同的方法来使C文件正常工作之后,我找到了这个网站:

http://www.lfd.uci.edu/~gohlke/pythonlibs/

C. Gohlke已经为我们的Windows用户编辑并上传了这些文件。

只需根据您的系统和python版本下载所需的版本。我使用64位和python 3.6,所以我使用了下载文件夹中的以下命令:

pip install python_snappy-0.5-cp36-cp36m-win_amd64.whl

它就像一个魅力:)

答案 1 :(得分:2)

编辑:请参阅此主题中的其他答案,我只会将其保留以供参考。

这是我在Windows 10上安装Snappy和Python-Snappy所采取的步骤:

  1. 安装cygwin。
  2. http://google.github.io/snappy/下载snappy并将其解压缩到cygwin目录中。
  3. AM_PROG_AR写入configure.ac以上的LT_INIT并从cygwin终端运行autogen.sh,如果需要,请安装缺少的cygwin软件包。
  4. snappy-c.h复制到Anaconda2/include文件夹,将libsnappy.a复制到Anaconda2/Lib文件夹(~/AppData/Local/Continuum/)。
  5. Visual C ++ Compiler for Python 2.7缺少
  6. stdint.h。我发现它here并将其放入~\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\include
  7. 安装python-snappy现在应该可以正常运行而不会出现任何错误。
  8. 如果您遇到问题并且奇怪的导入检查是否还安装了SnapPy library并卸载它,因为它会导致冲突。
  9. (现在一切正常。)

    编辑:不,不。此方法不可靠,一旦您尝试更新,您就会遇到新问题。在Python 3上安装是另一个没有被这个解决方案解决的怪物。

答案 2 :(得分:2)

似乎现在有Conda软件包可以简化操作(在Anaconda中)。我能够做到(在Python 3.6,Windows 10上):

conda install -c conda-forge snappy
conda install -c conda-forge python-snappy