这是我刚刚在我的 CentOS 服务器上编写的一步一步(序列假设你不是 root):
LIBGMP 安装
首先,在您的主目录中的某个位置设置并安装 libgmp,如下所示:
./configure prefix=$HOME
make
make install prefix=$HOME
这将创建一个 ~/lib、一个 ~/include 和一个 ~/share 目录(如果不存在的话)。
然后,将以下行添加到您的 .bashrc:
export LD_LIBRARY_PATH=$HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH
执行“.~/.bashrc”来强制执行您的更改。
加密构建和安装
我们需要手动处理安装过程。首先,我们可以如下下载pycrypto:
然后我们需要“稍微”欺骗一下配置:
cd pycrypto-26
./configure --includedir=$HOME/include
编辑文件 cd src/config.h 并修改定义的值:
#define HAVE_DECL_MPZ_POWM 0 而不是 1
#define HAVE_DECL_MPZ_POWM_SEC 1 而不是 0
#define HAVE_LIBGMP 1 而不是 0
然后通过搜索关键字“_fastmath”来编辑 setup.py 文件,并确保 Extension() 声明如下所示:
Extension("Crypto.PublicKey._fastmath",
include_dirs=['/home/<yourhome>/include','src/','/usr/include/'],
library_dirs=['/home/<yourhome>/lib'],
libraries=['gmp'],
sources=["src/_fastmath.c"]),
最后,使用以下命令构建 pycrypto:
python setup.py build
您应该在跟踪中的某处看到以下行:
...
building 'Crypto.PublicKey._fastmath' extension
...
然后,您可以执行“python setup.py install”,或者,如果您像我一样喜欢 pip:
cd ..
pip install ./pycrypto-2.6
然后从 python 执行以下行时应该不会出错:
>>> from Crypto.PublicKey import _fastmath
>>> import Crypto.Random
>>> _fastmath.HAVE_DECL_MPZ_POWM_SEC
1