Установите thrift_sasl для Python в Windows

Я пытался установить пакет thrift_sasl через pip в Windows 10 x64.

thrift_sasl зависит от пакета sasl, но при запуске pip install thrift_sasl или pip install sasl я сталкиваюсь с той же ошибкой.

creating build\temp.win-amd64-2.7\Release\sasl
C:\Users\user\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Isasl -Ic:\python27\include -Ic:\python27\PC /Tpsasl/saslwrapper.cpp /Fobuild\temp.win-amd64-2.7\Release\sasl/saslwrapper.obj
saslwrapper.cpp
sasl/saslwrapper.cpp(247) : fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory
error: command 'C:\\Users\\user\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

Проблема, вероятно, в том, что Visual C++ для Python не поддерживает старые заголовочные файлы c. Может ли кто-нибудь помочь мне с установкой?

Изменить: я установил mingw и попытался установить его с параметром --compiler=mingw32 для pip. Теперь это дает мне следующую ошибку:

C:\MinGW\bin\gcc.exe -mdll -O -Wall -Isasl -Ic:\python27\include -Ic:\python27\PC -c sasl/saslwrapper.cpp -o build\temp.win-amd64-2.7\Release\sasl\saslwrapper.o
In file included from sasl/saslwrapper.cpp:254:0:
sasl/saslwrapper.h:22:23: fatal error: sasl/sasl.h: No such file or directory
 #include <sasl/sasl.h>
                       ^
compilation terminated.
error: command 'C:\\MinGW\\bin\\gcc.exe' failed with exit status 1

Изменить 2: я скачал библиотеку Cyrus sasl C и скопировал файлы заголовков в папку, в которой mingw ищет файлы заголовков (например, C:\MinGW\lib\gcc\mingw32\4.9.3\include\sasl). Теперь я получаю эту ошибку:

In file included from sasl/saslwrapper.cpp:254:0:
sasl/saslwrapper.h: In member function 'void saslwrapper::ClientImpl::interact(sasl_interact_t*)':
sasl/saslwrapper.h:442:41: error: 'getpass' was not declared in this scope
         char* pass = getpass(ppt.c_str());
                                         ^
sasl/saslwrapper.h:437:11: warning: unused variable 'input' [-Wunused-variable]
     char* input;
           ^
sasl/saslwrapper.cpp: In function 'void __Pyx_RaiseArgtupleInvalid(const char*, int, Py_ssize_t, Py_ssize_t, Py_ssize_t)':
sasl/saslwrapper.cpp:3225:59: warning: unknown conversion type character 'z' in format [-Wformat=]
                  (num_expected == 1) ? "" : "s", num_found);
                                                           ^
sasl/saslwrapper.cpp:3225:59: warning: format '%s' expects argument of type 'char*', but argument 5 has type 'Py_ssize_t {aka int}' [-Wformat=]
sasl/saslwrapper.cpp:3225:59: warning: unknown conversion type character 'z' in format [-Wformat=]
sasl/saslwrapper.cpp:3225:59: warning: too many arguments for format [-Wformat-extra-args]
error: command 'C:\\MinGW\\bin\\gcc.exe' failed with exit status 1

Кажется, в скачанной мной sasl-библиотеке нет никакой функции getpass. Я осмотрелся и обнаружил, что функция getpass работает только в Linux и изменяет состояние терминала, как показано в справочная страница Linux. Я скачал библиотеку с здесь. Любые идеи для любого обходного пути?


person Rahul    schedule 26.05.2016    source источник


Ответы (3)


если у вас не установлен шоколад, установите его, следуя этим инструкциямустановка шоколада

тогда попробуй

choco install msinttypes

из командной строки.

затем попробуйте снова установить thrift_sasl

person WildCard    schedule 26.05.2016
comment
Не могу установить msinttypes, так как у меня нет прав администратора. Или конкретно Requested registry access is not allowed. - person Rahul; 26.05.2016

У меня была такая же проблема с вами, когда я пытался установить sasl. Вот мое решение:

  1. ням поиск sasl
  2. sudo yum установить cyrus-sasl-devel saslwrapper
  3. sudo pip установить sasl

Бинго! Надеюсь, я смогу помочь вам с этим.

person Yves Tsai    schedule 13.03.2017
comment
Установка Yum предназначена для Linux, а не для Windows. Как и судо. - person Hack-R; 08.09.2017

После выполнения следующей команды «pip install sasl» и «pip install thrift_sasl» успешно установлены.

$ sudo yum установить gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64

person friedchicken    schedule 25.01.2017
comment
Вопрос связан с Windows, и запуск yum не поможет. - person Yakuza; 26.01.2017