使用Python 3.6安装python软件包



我一直在尝试在Windows 64位笔记本电脑上安装Python软件包scrypt,因为我想使用的另一个软件包需要它。相同的软件包也需要Python 3.6,因此在我的计算机上,我同时使用Python 2.7和3.6,并使用pippip3来区分两者。执行pip install scrypt时,所有内容都安装正常,但是使用pip3 install scrypt时,我会收到以下错误:

scrypt-1.2.0/lib/cryptocrypto_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

i然后通过更改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-Win64lib']
        includes = ['c:OpenSSL-Win64include', 'scrypt-windows stubs/include']
    else:
        library_dirs = ['c:OpenSSL-Win32lib']
        includes = ['c:OpenSSL-Win32include', 'scrypt-windows-stubs/include']

简单地让库是64位

library_dirs = ['c:OpenSSL-Win64lib']
includes = ['c:OpenSSL-Win64include', 'scrypt-windows

,但这再次给出了一个错误:

LINK : fatal error LNK1181: cannot open input file 'libeay32.lib'

之后,我放弃了,来到这里问该怎么办。如何使scrypt在Windows上使用Python 3.6?

根据存储库信息,Scrypt软件包仅适用于Python版本,最高3.5 windows,用于预编译的形式。我的猜测是在2.7上正常工作,因为它不是试图从头开始编译二进制部分,但是在3.6上必须汇编二进制部分,并且您没有安装所需的作品。

这种错误令人沮丧,但是除非包装维护者想要为3.6提供预制的包裹,否则您必须自己构建它。

根据说明:https://stackoverflow.com/a/39270114/150851

您需要从这里安装OpenSSL-WIN64 1.0.2n(不是轻版本):

http://slproweb.com/products/win32openssl.html

然后运行python setup.py install,并且应该工作。

相关内容

  • 没有找到相关文章

最新更新