Установка py-bcrypt на win 7 64bit Python

Попытка установить py-bcrypt на win7. Python является 64-битным. Первая ошибка не удалось найти vcvarsall.bat. Погуглил немного узнал, что мне нужно было установить mingw. установил это сейчас

C:\tools\python_modules\py-bcrypt-0.2>python setup.py build -c mingw32
running build
running build_py
running build_ext
building 'bcrypt._bcrypt' extension
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -Ic:\Python27\include -Ic:\Python27\PC -c bcrypt/bcrypt_python.c -o b
d\temp.win-amd64-2.7\Release\bcrypt\bcrypt_python.o
bcrypt/bcrypt_python.c:29:26: error: expected declaration specifiers or '...' before 'u_int8_t'
bcrypt/bcrypt_python.c:29:38: error: expected declaration specifiers or '...' before 'u_int16_t'
bcrypt/bcrypt_python.c:29:49: error: expected declaration specifiers or '...' before 'u_int8_t'
bcrypt/bcrypt_python.c: In function 'bcrypt_encode_salt':
bcrypt/bcrypt_python.c:56:2: error: too many arguments to function 'encode_salt'
bcrypt/bcrypt_python.c:29:6: note: declared here
error: command 'gcc' failed with exit status 1

понятия не имею, что делать дальше. думаю, я просто не буду использовать bcrypt и попробую что-нибудь еще. Любые другие предложения?

7 ответов

Решение

У меня была та же проблема, и я исправил ее, применив патч, найденный по этой ссылке:

http://code.google.com/p/py-bcrypt/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&sort=&id=1

ру-bcrypt_11.patch

Пришлось применять его вручную.

Из этой темы источником проблемы является

Согласно http://groups.google.com/group/mpir-devel/msg/2c2d4cc7ec12adbb (флаги, определенные под различными операционными системами Windows, cygwins, mingw и другими), лучше использовать _WIN32 вместо _MSC_VER, вместе с переход от bzero к memset компилируется как под MSVC, так и под MingW32.

Надеюсь, это поможет!

Существует скомпилированная версия py-bcrypt для Windows. Вы можете посетить https://bitbucket.org/alexandrul/py-bcrypt/downloads чтобы загрузить файл.exe и установить его.

Я наткнулся на этот довольно старый поток, пытаясь установить py-bcrypt (через pip) на Windows 7, используя VS2012. По-видимому, это все еще не работает (я также получаю ошибку "missing vcvars.bat").

Существует специальный форк Windows для py-bcrypt, называемый py-bcrypt-w32, который я мог установить без проблем, используя

pip install py-bcrypt-w32

Я посмотрел на исходный код bcrypt и не могу понять, почему вы получаете ошибку (у вас нет системы Windows для тестирования прямо сейчас). Хотя, глядя на средство отслеживания проблем pybcrypt, похоже, что у него есть другие проблемы с компиляцией Windows, так что, вероятно, это не только вы. Однако можно предположить, что добавление "--std=C99" к аргументам gcc через extra_compile_args может исправить хотя бы некоторые ошибки.

Помимо этого, есть несколько альтернатив -

  • Bcryptor - это еще одна реализация C-расширения bcrypt, которая может компилироваться для вашей системы.

  • Passlib - это общая библиотека хэширования паролей. Хотя он полагается на bcryptor/pybcrypt для поддержки bcrypt, он имеет встроенную поддержку ряда других хэшей паролей, которые могут работать для вас, таких как SHA512-Crypt или PBKDF2-HMAC-SHA512

  • Cryptacular - это еще одна общая библиотека хеширования паролей. В Windows он предоставляет хеши паролей BCrypt и PBKDF2-HMAC-SHA512. (Я бы прямо связался с ними, но документация мне не дала).

Это 2016 год, и я столкнулся с той же проблемой. Загрузите колесо прямо с https://bitbucket.org/alexandrul/py-bcrypt/downloads а затем выполните следующую команду

pip install <whl-file>

У меня была такая же проблема с питоном 3.4.1, и ни один из предыдущих ответов не сработал. В итоге я получил 64-битный компилятор Visual Studio 2010, и, следовательно, cryptacular и py-bcrypt установлены с easy_install. Смотрите мой подробный ответ здесь: /questions/29351862/oshibka-ne-udaetsya-najti-vcvarsallbat/29351870#29351870

Предположим, что вы используете mingw64, вы должны изменить _MSC_VER в _WIN32 на ifdefs на bcrypt.c, bcrypt_python.c и pybc_blf.h

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