我通过 pip 在 Windows 上安装了 PyCrypto,但无法构建 Crypto.PublicKey._fastmath,因为找不到 GMP。
我知道有一个二进制版本虚空 http://www.voidspace.org.uk/python/modules.shtml#pycrypto但我想构建最新版本的 PyCrypto
以下是实现您目标的一种方法。还有其他可能更好的方法(例如基于 Visual Studio),但这个方法对我有用。此外,它不使用pip
.
所有操作均在命令提示符下进行。
- Install Mingw http://www.mingw.org/,包括MSYS和开发工具包。这将为您提供一个相当完整的类 Unix 开发环境。
- 确保 Mingw 二进制文件位于 PATH 环境变量中。你需要
MinGW\bin
and MingGW\msys\1.0\bin
.
- 下载MPIR http://www.mpir.org/临时目录中的源。你这样做很重要not使用 2.5.1,因为一个错误会破坏构建。 2.5.0 没问题。
- 构建 MPIR 库。这相当简单:执行
bash configure
其次是make
.
-
HACK #1 Copy
libmpir.a
from mpir-2.5.0\.libs
into C:\Python2.7.1\libs
。这是必要的,因为distutils
已损坏,我找不到将其定向到正确的库位置的方法。
-
HACK #2 Edit
C:\Python2.7.1\Lib\distutils\cygwincompiler.py
并删除任何出现的字符串-mno-cygwin
。原因已解释here http://www.secker.nl/2012/03/08/setup-python-2-7-2-and-mingw-on-windows-xp/.
- 下载PyCrypto https://www.dlitz.net/software/pycrypto/源并将它们解压到另一个临时目录中。
- Set
CPPFLAGS
环境变量添加到 MPIR 目录,其中包含mpir.h
.
-
HACK 3 Edit setup.py
并添加以下行build_extension
方法:
self.__add_compiler_option(os.environ['CPPFLAGS'])
-
Run bash configure
。您应该看到两行内容:
检查 -lgmp 中的 __gmpz_init... 否
检查 -lmpir 中的 __gmpz_init...是的
- Execute
python setup.py build -c mingw32
。您应该不会看到任何错误。
- Execute
python setup.py test
以验证一切正常。
- Execute
python setup.py install
将文件复制到本地 Python 存储库中。
- 或者,运行
python setup.py bdist_wininst
创建安装程序。
我真的很讨厌所有各种各样的黑客行为,我很想听听是否可以避免它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)