我通过 pip 在 Windows 上安装了 PyCrypto,但由于找不到 GMP,我无法构建 Crypto.PublicKey._fastmath。
我知道voidspace上有一个二进制版本,但我想构建最新版本的 PyCrypto
我通过 pip 在 Windows 上安装了 PyCrypto,但由于找不到 GMP,我无法构建 Crypto.PublicKey._fastmath。
我知道voidspace上有一个二进制版本,但我想构建最新版本的 PyCrypto
以下是实现目标的一种方法。还有其他可能更好的方法(例如基于 Visual Studio),但这个方法对我有用。此外,它不使用pip
.
所有操作都在命令提示符下进行。
MinGW\bin
和MingGW\msys\1.0\bin
。bash configure
后跟make
.libmpir.a
从复制mpir-2.5.0\.libs
到C:\Python2.7.1\libs
. 这是必要的,因为distutils
它已损坏,我找不到将其定向到正确库位置的方法。C:\Python2.7.1\Lib\distutils\cygwincompiler.py
并删除任何出现的字符串-mno-cygwin
。原因在这里解释。CPPFLAGS
环境变量设置为 MPIR 目录,其中包含mpir.h
.HACK 3编辑setup.py
并在方法中添加以下行build_extension
:
self.__add_compiler_option(os.environ['CPPFLAGS'])
运行bash configure
。你应该看到两行说:
检查 -lgmp 中的 __gmpz_init... 不
检查 -lmpir 中的 __gmpz_init... 是
python setup.py build -c mingw32
。您应该看不到任何错误。python setup.py test
以验证一切正常。python setup.py install
以将文件复制到本地 Python 存储库中。python setup.py bdist_wininst
以创建安装程序。我真的很讨厌所有各种黑客,我很想听听它们是否可以避免。