Установка Thrift с привязками Python в Windows 7 32-bit - PullRequest
1 голос
/ 29 ноября 2011

Я пытаюсь установить pycassa , клиент Cassandra на Python, на Windows 7.

Запуск pip install pycassa Я получил это сообщение об ошибке:

error: unable to find vcvarsall.bat
* 1008Копая глубже, я обнаружил, что Python не смог установить библиотеку Thrift и привязки Python.Один из способов, который предлагают люди, - это установить компилятор C ++, такой как Visual Studio 2008 Express или mingw в Windows 7, и скомпилировать Thrift из исходного кода.Я нашел онлайн-версию Thrift .Есть ли способ связать скомпилированную версию Thrift в Python и затем использовать ее в Pycassa?Или я должен пройти компиляцию из исходного кода?

1 Ответ

3 голосов
/ 30 ноября 2011

В Thrift действительно есть два (вида) компонента: есть компилятор Thrift, который генерирует код с заданным интерфейсом, а затем есть библиотеки для каждого языка, которые реализуют низкоуровневые протоколы Thrift и транспорты для каждого языка.

Вы почти наверняка не нуждаетесь в компиляторе Thrift, на который вы ссылались. Вам нужно нужна библиотека питонов Thrift; pip пытается установить это как зависимость для pycassa. Причина, по которой он ломается, заключается в том, что есть расширение C, которое включено в библиотеку Python Thrift, и в процессе установки оно пытается это скомпилировать. Чтобы компиляция работала, вам нужно сделать несколько вещей специально.

Если вы просто делаете это для целей разработки, вы можете загрузить последнюю версию Thrift Python Library вручную, удалить src / protocol / fastbinary.c, а затем запустить «setup.py install» из каталог верхнего уровня. Это будет медленнее, чем если у вас есть скомпилированное и установленное расширение, но для целей разработки оно будет работать нормально. Вы можете использовать 'pip install --no-deps pycassa' на этом этапе, и он не будет пытаться установить Thrift автоматически, просто pycassa.

Если вы делаете это для производства, вы, вероятно, захотите, чтобы расширение C было скомпилировано и установлено. Для этого вам необходимо установить Visual C ++ 2008 Express Edition , получить последнюю версию Thrift из SVN, перейти в каталог lib / py и запустить там файл setup.py install.

...