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