【问题标题】:How to install snappy C libraries on Windows 10 for use with python-snappy in Anaconda?如何在 Windows 10 上安装 snappy C 库以在 Anaconda 中与 python-snappy 一起使用?
【发布时间】:2017-08-16 05:08:02
【问题描述】:

我想在 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


    【解决方案1】:

    在尝试不同的方法让 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
    

    它就像一个魅力:)

    【讨论】:

    • 在升级我的 snappy 安装和在 Python 3 上进行新安装时遇到大问题后,我将授予您最佳答案。在遇到一些麻烦后,我只是按照您的方式进行操作,并且毫不费力.
    • 谢谢!很高兴它对你有所帮助。这肯定是给我的!
    • 这也适用于 pipenv。 Pycharm 遇到错误,现在解决了。
    • 嗨,我已经成功安装了它Installing collected packages: python-snappy Successfully installed python-snappy-0.5.4,但是当我在 PyCharm 中执行脚本时,似乎它仍然给出同样的错误RuntimeError: Decompression 'SNAPPY' not available. Options: ['GZIP', 'UNCOMPRESSED'] 我错过了什么吗?
    • (在 PyCharm 中,它仍然表明 python-snappy 没有安装)我错过了什么吗?
    【解决方案2】:

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

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

    【讨论】:

    • 或者conda install -c conda-forge snappy 然后pip install python-snappy。确保你先conda activate your-env-name
    【解决方案3】:

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

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

    1. 安装 cygwin。
    2. http://google.github.io/snappy/ 下载 snappy 并将其解压到 cygwin 目录的某个位置。
    3. AM_PROG_AR 写入LT_INIT 上方的configure.ac 并从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 中缺少 stdint.h。我找到了 here 并将其放入 ~\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\include
    6. 现在安装 python-snappy 应该可以正常工作而不会引发任何错误。
    7. 如果您遇到问题和奇怪的导入,请检查是否还安装了 SnapPy library,然后将其卸载,因为它会导致冲突。

    (现在一切正常。)

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

    【讨论】:

      猜你喜欢
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      • 2013-06-19
      • 2023-03-20
      相关资源
      最近更新 更多