如何在 Windows 10 上安装 snappy C 库以便在 Anaconda 中与 python-snappy 一起使用?
How to install snappy C libraries on Windows 10 for use with python-snappy in Anaconda?
我想在 Windows 10 上的 Anaconda 2 安装中使用 pip 安装 parquet for python。
安装 I 运行 时出现 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.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
编辑:请参考本帖中的其他答案,我保留此内容仅供参考。
这是我在 Windows 10 上安装 Snappy 和 Python-Snappy 的步骤:
- 安装 cygwin。
- 从 http://google.github.io/snappy/ 下载 snappy 并将其解压到 cygwin 目录中。
- 从 cygwin 终端将
AM_PROG_AR
写入 configure.ac
以上 LT_INIT
和 运行 autogen.sh
,如果需要安装缺少的 cygwin 包。
- 将
snappy-c.h
复制到 Anaconda2/include
文件夹中,将 libsnappy.a
复制到 Anaconda2/Lib
文件夹中(在 ~/AppData/Local/Continuum/
中)。
stdint.h
缺少 Python 2.7 的 Visual C++ 编译器。我找到它 here 并将其放入 ~\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python.0\VC\include
.
- 安装 python-snappy 现在应该可以正常工作,不会抛出任何错误。
- 如果遇到问题和奇怪的导入,请检查是否也安装了 SnapPy library 并卸载它,因为它会导致冲突。
(现在一切正常。)
编辑:不,不是。此方法不可靠,一旦您尝试将 运行 更新为新问题。在 Python 3 上安装是此解决方案无法解决的另一个问题。
经过漫长而令人沮丧的时间尝试不同的方法使 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 上的 Anaconda 2 安装中使用 pip 安装 parquet for python。
安装 I 运行 时出现 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.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
编辑:请参考本帖中的其他答案,我保留此内容仅供参考。
这是我在 Windows 10 上安装 Snappy 和 Python-Snappy 的步骤:
- 安装 cygwin。
- 从 http://google.github.io/snappy/ 下载 snappy 并将其解压到 cygwin 目录中。
- 从 cygwin 终端将
AM_PROG_AR
写入configure.ac
以上LT_INIT
和 运行autogen.sh
,如果需要安装缺少的 cygwin 包。 - 将
snappy-c.h
复制到Anaconda2/include
文件夹中,将libsnappy.a
复制到Anaconda2/Lib
文件夹中(在~/AppData/Local/Continuum/
中)。 stdint.h
缺少 Python 2.7 的 Visual C++ 编译器。我找到它 here 并将其放入~\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python.0\VC\include
.- 安装 python-snappy 现在应该可以正常工作,不会抛出任何错误。
- 如果遇到问题和奇怪的导入,请检查是否也安装了 SnapPy library 并卸载它,因为它会导致冲突。
(现在一切正常。)
编辑:不,不是。此方法不可靠,一旦您尝试将 运行 更新为新问题。在 Python 3 上安装是此解决方案无法解决的另一个问题。
经过漫长而令人沮丧的时间尝试不同的方法使 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