Установка скрипта пакета Python с Python 3.6
Я пытался установить пакет Python scrypt
на моем 64-битном ноутбуке с Windows, потому что другой пакет, который я хочу использовать, требует этого. Этот же пакет также требует Python 3.6, поэтому на моем компьютере у меня есть и Python 2.7, и 3.6, и я использую pip
а также pip3
различать два. При выполнении pip install scrypt
все устанавливает нормально, но при использовании pip3 install scrypt
Я получаю следующую ошибку:
scrypt-1.2.0/lib/crypto\crypto_scrypt.h(33): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
Я попытался решить эту проблему путем клонирования хранилища следующим образом:
$ hg clone http://bitbucket.org/mhallin/py-scrypt
$ cd py-scrypt
$ PATHTOPYTHON3 setup.py build
который затем дает следующую ошибку
scrypt-1.2.0/libcperciva/crypto/crypto_aes.c(6): fatal error C1083: Cannot open include file: 'openssl/aes.h': No such file or directory
Затем я решил эту ошибку, изменив следующий код в setup.py
elif sys.platform.startswith('win32'):
define_macros = [('inline', '__inline')]
libraries = ['libeay32', 'advapi32']
extra_sources = ['scrypt-windows-stubs/gettimeofday.c']
if struct.calcsize('P') == 8:
library_dirs = ['c:\OpenSSL-Win64\lib']
includes = ['c:\OpenSSL-Win64\include', 'scrypt-windows stubs/include']
else:
library_dirs = ['c:\OpenSSL-Win32\lib']
includes = ['c:\OpenSSL-Win32\include', 'scrypt-windows-stubs/include']
просто иметь библиотеки быть 64-битными
library_dirs = ['c:\OpenSSL-Win64\lib']
includes = ['c:\OpenSSL-Win64\include', 'scrypt-windows
но это еще раз дает ошибку:
LINK : fatal error LNK1181: cannot open input file 'libeay32.lib'
После этого я сдался и пришел сюда, чтобы спросить, что делать. Как я могу получить scrypt
работа с Python 3.6 на Windows?
2 ответа
Согласно информации из репозитория, пакет scrypt доступен только для версий Python до 3.5 для Windows в предварительно скомпилированном виде. Я предполагаю, что он отлично работает на 2.7, потому что он не пытается скомпилировать бинарные части с нуля, но на 3.6 он должен, и у вас нет необходимых частей, которые ему нужны.
Такая ошибка разочаровывает, но если сопровождающий не хочет предоставить предварительно собранный пакет для 3.6, вам придется бороться за его сборку самостоятельно.
В соответствии с инструкциями здесь: /questions/39298012/ssyilka-fatalnaya-oshibka-lnk1181-ne-udaetsya-otkryit-vhodnoj-fajl-copenssl-win64liblibeay32lib/39298033#39298033
Вам нужно установить OpenSSL-Win64 1.0.2n отсюда (не облегченная версия):
http://slproweb.com/products/Win32OpenSSL.html
Тогда беги python setup.py install
и это должно работать.