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



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

安装时,我遇到了此处描述的错误,安装程序找不到snappy-c.h

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

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

从我的错误消息中,我会假设头文件需要在C:Users...AppDataLocalContinuumAnaconda2include中,但在向下的存档标题和库文件中都位于同一文件夹中。

如何在 Anaconda 文件夹中正确安装它们?

完整的错误消息:

Building wheels for collected packages: python-snappy
Running setup.py bdist_wheel for python-snappy ... error
Complete output from command C:Users...AppDataLocalContinuumAnaconda2python.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('rn', 'n');f.close();exec(compile(code, __file__, 'exec
'))" bdist_wheel -d c:users...appdatalocaltemptmpt8fz9bpip-wheel- --python-tag cp27:
running bdist_wheel
running build
running build_py
creating build
creating buildlib.win-amd64-2.7
copying snappy.py -> buildlib.win-amd64-2.7
running build_ext
building '_snappy' extension
creating buildtemp.win-amd64-2.7
creating buildtemp.win-amd64-2.7Release
C:Users...AppDataLocalProgramsCommonMicrosoftVisual C++ for Python9.0VCBinamd64cl.exe /c /nol
ogo /Ox /MD /W3 /GS- /DNDEBUG -IC:Users...AppDataLocalContinuumAnaconda2include -IC:Users...
AppDataLocalContinuumAnaconda2PC /Tpsnappymodule.cc /Fobuildtemp.win-amd64-2.7Releasesnappymodule.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

经过漫长而令人沮丧的时间尝试不同的方法来使 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

它就像一个魅力:)

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

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

编辑:参考此线程中的其他答案,我仅将其保留以供参考。

以下是我在Windows 10上安装Snappy和Python-Snappy的步骤:

  1. 安装cygwin。
  2. 从 http://google.github.io/snappy/下载 snappy 并将其解压缩到 cygwin 目录中。
  3. AM_PROG_AR写入上面的configure.acLT_INIT并从cygwin终端运行autogen.sh,如果需要,可以安装缺少的cygwin软件包。
  4. snappy-c.h复制到Anaconda2/include文件夹中,libsnappy.a复制到Anaconda2/Lib文件夹中(以~/AppData/Local/Continuum/为单位)。
  5. Python 2.7 的 Visual C++ Compiler 缺少stdint.h,我在这里找到了它并将其放入~AppDataLocalProgramsCommonMicrosoftVisual C++ for Python9.0VCinclude
  6. 安装 python-snappy 现在应该可以工作而不会引发任何错误。
  7. 如果您遇到问题和奇怪的导入,请检查是否也安装了 SnapPy 库并卸载它,因为它会导致冲突。

(现在一切正常。

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

最新更新