Установка Thrift с привязками Python в 32-разрядной версии Windows 7

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

Запустив pip install pycassa, я получил следующее сообщение об ошибке:

error: unable to find vcvarsall.bat

Копнув глубже, я обнаружил, что Python не смог установить библиотеку бережливости и привязки Python. Один из способов, который предлагают люди, — это установить компилятор C++, такой как Visual Studio 2008 Express или mingw в Windows 7 и скомпилируйте Thrift из исходников.

Однако я нашел компилированную онлайн-версию Thrift. Есть ли способ связать скомпилированную версию Thrift с Python, а затем использовать ее в pycassa? Или мне нужно пройти компиляцию бережливости из исходников?


person Yuval F    schedule 29.11.2011    source источник


Ответы (1)


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

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

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

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

person Tyler Hobbs    schedule 29.11.2011
comment
Большое спасибо, Тайлер. Мне также нужно было удалить расширение fastbinary из setup.py, но в остальном оно работает нормально. - person Yuval F; 30.11.2011
comment
Ах, да, я забыл включить это. Спасибо, что упомянули об этом. - person Tyler Hobbs; 30.11.2011