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

问题描述 投票:0回答:4

我想在 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
python python-2.7 installation anaconda snappy
4个回答
42
投票

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

它就像一个魅力:)


12
投票

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

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

3
投票

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

以下是我在 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 库是否也已安装并卸载它,因为它会导致冲突。

(现在一切正常。)

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


0
投票

我在 Puthon 3.11/3.12 上的 python-snappy 也有同样的问题。我刚刚删除了 3.11/3.12 版本并安装了 3.6.8 版本,然后在我的电脑上安装了 python-snappy

Python 3.6.8:https://www.python.org/downloads/release/python-368/ 删除Python的实际版本 安装 python-snappy: pip install python_snappy

© www.soinside.com 2019 - 2024. All rights reserved.