使用Python 3.6安装Python软件包scrypt
使用Python 3.6安装Python软件包scrypt
我一直在尝试在我的Windows 64位笔记本上安装Python包scrypt
,因为我想要使用的另一个包需要它。这个包还需要Python 3.6,所以在我的电脑上既有Python 2.7又有3.6,并且使用pip
和pip3
来区分两者。当运行pip install scrypt
时,一切都正常安装,但是当运行pip3 install scrypt
时,我收到以下错误:\n
scrypt-1.2.0/lib/crypto\crypto_scrypt.h(33): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
\n我尝试通过克隆存储库来解决这个问题,步骤如下:\n
$ hg clone http://bitbucket.org/mhallin/py-scrypt $ cd py-scrypt $ PATHTOPYTHON3 setup.py build
\n然后出现以下错误:\n
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
\n然后我通过更改setup.py
中的以下代码来解决这个错误:\n
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']
\n将库设置为64位版本:\n
library_dirs = ['c:\OpenSSL-Win64\lib'] includes = ['c:\OpenSSL-Win64\include', 'scrypt-windows
\n但是这又报错了:\n
LINK : fatal error LNK1181: cannot open input file 'libeay32.lib'
\n在这之后,我放弃了并来这里问该怎么办。我如何在Windows上使用Python 3.6使scrypt
正常工作?
问题:在使用Python 3.6安装Python包scrypt时出现的原因以及解决方法
原因:根据这里的说明:https://stackoverflow.com/a/39270114/150851,需要安装OpenSSL-Win64 1.0.2n版本(而不是轻量版)才能成功安装scrypt。
解决方法:按照以下步骤进行操作:
1. 从http://slproweb.com/products/Win32OpenSSL.html下载并安装OpenSSL-Win64 1.0.2n版本。
2. 运行以下命令:python setup.py install
。
3. 安装完成后应该可以正常使用scrypt包。
根据仓库信息,scrypt软件包只能在Windows上的Python 3.5及以下版本中以预编译形式使用。我猜在Python 2.7上它能正常工作是因为它不需要从头开始编译二进制部分,但在Python 3.6上,它必须这样做,而你没有安装它所需的部分。这种错误令人沮丧,但除非软件包维护者愿意为3.6提供预构建的软件包,否则你将不得不自己构建它。
解决方法:
1. 首先,确保你已经安装了Python 3.6版本。
2. 确认你已经安装了C编译器。对于Windows用户,可以使用Microsoft Visual C++ Build Tools来安装。
3. 打开命令提示符或终端,使用以下命令安装scrypt软件包的依赖项:
pip install setuptools-golang
4. 下载scrypt的源代码,可以从GitHub仓库中获取。
5. 解压源代码文件,然后进入解压后的文件夹。
6. 使用以下命令构建和安装scrypt软件包:
python setup.py build
python setup.py install
7. 等待安装完成后,你就可以在Python 3.6上使用scrypt软件包了。
希望这些步骤能够帮助你在Python 3.6上成功安装scrypt软件包。如果你遇到任何问题,请参考scrypt软件包的文档或联系软件包维护者寻求帮助。