我正在运行带有Python 2.7的CentOS 6.4服务器(通过PythonBrew脚本安装)
我通过'yum install gmp'安装了gmp 和python-devel通过'yum install python-devel'安装(但它适用于python 2.6系列)
我正在尝试在我的服务器上安装pycrypto,但它正在给我
warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath
有没有办法让pip'识别'我的gmp安装?
谢谢:D
答案 0 :(得分:8)
尝试使用pip在Centos 6.4上在系统级别安装Fabric时出现上述错误。 (面料使用pycrypto)。
warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath
这就是我的工作方式:
yum install gmp-devel
sudo pip uninstall ecdsa pycrypto paramiko fabric
# clear out the pip build dirs
rm -rf /tmp/pip-*
# make sure the directory containing libgmp.so.3 is on the python path
export LD_LIBRARY_PATH="/usr/lib64:$LD_LIBRARY_PATH"
pip install fabric
答案 1 :(得分:7)
这是我在CentOS服务器上做的一步一步(序列假设你不是root用户):
LIBGMP INSTALL
首先,在主目录中的某处设置并安装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 BUILD& INSTALL 强>
我们需要手动处理安装过程。 首先,我们可以按如下方式下载pycrypto:
进入存储资源的目录:
cd~ / src
下载pycrypto源档案:
curl -o pycrypto.tar.gz“https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.tar.gz#md5=88dad0a270d1fe83a39e0467a66a22bb”
解压缩+解压缩存档:
gunzip pycrypto.tar.gz tar xvf pycrypto.tar
然后我们需要“稍微”欺骗配置:
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"]),
最后,使用:
构建pycryptopython 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
答案 2 :(得分:5)
您可能也需要安装gmp-devel。这为pycrypto提供了使用libgmp构建所需的头文件。
在Ubuntu上,我只安装了libgmp10。我在尝试安装pycrypto时遇到了同样的警告。安装Ubuntu软件包libgmp-dev后,警告消失了,构建脚本表明它正在使用_fastmath扩展名。
如果你已经安装了没有_fastmath的pycrypto,你可以使用-I标志重新安装它,例如
sudo pip install -I pycrypto
答案 3 :(得分:3)
对于那些近年来遇到过这种情况的人来说,我确信会有/会有一些。通过运行以下命令,我能够在Debian Jessie安装上轻松解决此问题。
$ sudo apt-get install python-dev
然后再次尝试安装。在我的情况下,我试图使用以下命令通过pip安装ansible。 同样适合那些能够在相同情况下遇到这篇文章的人。
$ sudo pip install ansible
输出现在应该如下。
Successfully installed pycrypto
Cleaning up...
我希望这有助于某人前进! - 贾斯汀
答案 4 :(得分:0)
您缺少C ++库来构建它。安装VS 2017 https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017