Я пытался установить пакет 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?