Как установить библиотеки snappy C в Windows 10 для использования с python-snappy в Anaconda?

Я хочу установить паркет для Python с помощью pip в рамках установки Anaconda 2 на Windows 10.

При установке я столкнулся с ошибкой, которая описана здесь, установщик не может найти snappy-c.h,

Там нет упоминания о том, как установить это на Windows в ответах.

Я скачал библиотеку Snappy с http://google.github.io/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

4 ответа

Решение

После очень долгого и разочаровывающего времени, пытаясь использовать разные методы, чтобы заставить работать файлы C, я нашел этот сайт:

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

Где C. Gohlke любезно скомпилировал и загрузил файлы для нас, пользователей Windows.

Просто скачайте нужную версию, основываясь на вашей системе и версии Python. Я использую 64bit и 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

Вот шаги, которые потребовались мне для установки Snappy и Python-Snappy на Windows 10:

  1. Установите Cygwin.
  2. Загрузите snappy с http://google.github.io/snappy/ и распакуйте его где-нибудь в каталог cygwin.
  3. Написать AM_PROG_AR в configure.ac выше LT_INIT и беги autogen.sh с терминала cygwin установите недостающие пакеты cygwin, если это необходимо.
  4. копия snappy-c.h в Anaconda2/include папка и libsnappy.a в Anaconda2/Lib папка (в ~/AppData/Local/Continuum/).
  5. stdint.h отсутствовал в Visual C++ Compiler для Python 2.7. Я нашел его здесь и вставил в ~\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\include,
  6. Установка python-snappy теперь должна работать без каких-либо ошибок.
  7. Если у вас возникли проблемы и произошел странный импорт, проверьте, установлена ​​ли библиотека SnapPy, и удалите ее, потому что это вызывает конфликт.

(Теперь все отлично работает.)

РЕДАКТИРОВАТЬ: Нет, это не так. Этот метод не является надежным, когда вы пытаетесь обновить, вы сталкиваетесь с новыми проблемами. А установка на Python 3 - это еще одно чудовище, которое не решается этим решением.

У меня такая же проблема с python-snappy на Puthon 3.11/3.12. Я только что удалил версии 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

Другие вопросы по тегам