一、 Python编译安装缺失模块_ctypes
build correctly but finished with this message:
Failed to build these modules:
_ctypes
安装依赖库
sudo apt install build-essential python3-dev libffi-dev
二、在安装Python3.8编译时报错:Could not build the ssl module!
Could not build the ssl module!
Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().
LibreSSL 2.6.4 and earlier do not provide the necessary APIs,
https://github.com/libressl-portable/portable/issues/381
1.官网下载最新的openssl安装https://www.openssl.org/source/gitrepo.html
(1)查看openssl版本
openssl version
(2)解压安装包:
sudo tar -zxf openssl-1.1.1h.tar.gz
(3)进入安装包依次执行:
./config
make
make test
make install
然后重新安装Python3.8
BUT,依然失败! 不能加载ssl module
2.安装libressl
根据错误提示,发现需要安装libressl,所以需要重现下载和安装libressl 来替代openssl
(1)下载地址:https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.7.4.tar.gz
tar zxvf libressl-2.7.4.tar.gz -C ./
cd cd libressl-2.7.4
./config --prefix=/usr/local
sudo make install
(2)新建或修改 /etc/ld.so.conf.d/local.conf 配置文件,添加如下内容:
/usr/local/lib
然后将 /usr/local/lib 目录加入到模块加载目录。
重新加载共享模块:
sudo ldconfig -v
重新编译Python3.8
回到 Python3.8目录,编辑安装文件 Modules/Setup
删除有关 ssl 编译代码的注释,共 4 行
SSL=/usr/local
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
这样重新编译python之后,就可以正常导入ssl模块了
(3)验证Python、pip、ssl
OK~ 大功告成!
三、安装缺少的zlib库
zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1099: recipe for target 'install' failed
make: *** [install] Error 1
安装指令:
sudo apt install zlibc zlib1g-dev
OK~