Установка py-bcrypt на win 7 64bit Python - PullRequest
6 голосов
/ 17 августа 2011

Попытка установить 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 ]

8 голосов
/ 06 декабря 2012

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

3 голосов
/ 06 ноября 2013

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

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

pip install py-bcrypt-w32
3 голосов
/ 17 августа 2011

Я посмотрел на исходный код 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. (я бы прямо связался с ними, но документация мне не совсем помогла) .

2 голосов
/ 12 июня 2012

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

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.

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

0 голосов
/ 26 июля 2016

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

pip install <whl-file>
0 голосов
/ 20 ноября 2014

У меня была такая же проблема с питоном 3.4.1, и ни один из предыдущих ответов не сработал.В итоге я получил 64-битный компилятор Visual Studio 2010, и, следовательно, и cryptacular, и py-bcrypt были установлены с easy_install.Смотрите мой подробный ответ здесь: https://stackoverflow.com/a/27033824/3800244

0 голосов
/ 09 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...