最近写RSA算法,用到了大数解密的相关东西,pip3 install gmpy2总是失败,报一下错误
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/
Collecting gmpy2
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/90/f4/9a2e384b325b69bc5827b9a6510a8fb4a51698c915c06a3f25a86458892a/gmpy2-2.0.8.zip (280kB)
|████████████████████████████████| 286kB 198kB/s
Building wheels for collected packages: gmpy2
Building wheel for gmpy2 (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-install-9ff7ez5p/gmpy2/setup.py'"'"'; __file__='"'"'/private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-install-9ff7ez5p/gmpy2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-wheel-wiyx95d2 --python-tag cp37
cwd: /private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-install-9ff7ez5p/gmpy2/
Complete output (14 lines):
running bdist_wheel
running build
running build_ext
building 'gmpy2' extension
creating build
creating build/temp.macosx-10.9-x86_64-3.7
creating build/temp.macosx-10.9-x86_64-3.7/src
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -DWITHMPFR -DWITHMPC -I/Library/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c src/gmpy2.c -o build/temp.macosx-10.9-x86_64-3.7/src/gmpy2.o
In file included from src/gmpy2.c:426:
src/gmpy.h:106:12: fatal error: 'gmp.h' file not found
# include "gmp.h"
^~~~~~~
1 error generated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for gmpy2
Running setup.py clean for gmpy2
Failed to build gmpy2
Installing collected packages: gmpy2
Running setup.py install for gmpy2 ... error
ERROR: Command errored out with exit status 1:
command: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-install-9ff7ez5p/gmpy2/setup.py'"'"'; __file__='"'"'/private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-install-9ff7ez5p/gmpy2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-record-utsnqrhv/install-record.txt --single-version-externally-managed --compile
cwd: /private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-install-9ff7ez5p/gmpy2/
Complete output (14 lines):
running install
running build
running build_ext
building 'gmpy2' extension
creating build
creating build/temp.macosx-10.9-x86_64-3.7
creating build/temp.macosx-10.9-x86_64-3.7/src
gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -DWITHMPFR -DWITHMPC -I/Library/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c src/gmpy2.c -o build/temp.macosx-10.9-x86_64-3.7/src/gmpy2.o
In file included from src/gmpy2.c:426:
src/gmpy.h:106:12: fatal error: 'gmp.h' file not found
# include "gmp.h"
^~~~~~~
1 error generated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-install-9ff7ez5p/gmpy2/setup.py'"'"'; __file__='"'"'/private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-install-9ff7ez5p/gmpy2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/z4/7tfczdsn6dxghdsxrcf6xyq40000gn/T/pip-record-utsnqrhv/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.
查看了日志,原因是头文件gmp.h文件不存在,寻找了一下网上的,mark一下需要的东西
brew install libmpc
pip3 install gmpy2
采用brew进行安装的时候会自动安装mpfr和gmpy
安装好了后,查了下libmpc mpfr是什么:
libmpc是一个C库,用于复数的算术,具有任意高的精度和正确的舍入结果。 它将固定精度实数浮点数的IEEE-754标准的原则扩展为复数,为每个操作提供明确的语义。 同时,高精度的操作速度是主要的设计目标。
MPFR库是一个C库,用于具有正确舍入的多精度浮点计算。