首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Debian8 64b上编译Python3.9的SSL模块时出错

在Debian8 64b上编译Python3.9的SSL模块时出错
EN

Stack Overflow用户
提问于 2021-11-04 13:32:51
回答 1查看 409关注 0票数 4

我需要在GNU/Linux Debian8 64b系统上构建python3.9

我获得了3.9.7版本的源代码并编译了它,但是我得到了关于ssl模块的以下错误:

代码语言:javascript
运行
复制
Could not build the ssl module!
Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().

很公平:我从github下载了openssl代码,签出标签OpenSSL_1_1_1l并将其安装在本地路径中;

  • 重新配置python3.9源树

代码语言:javascript
运行
复制
./configure --enable-optimizations --prefix=/opt/python3.9 --enable-shared --with-openssl=/root/develop/iQAC/openssl-1.1.1

installation

  • 检查了config.log文件,以验证它是否真的找到了新的openssl config.log

代码语言:javascript
运行
复制
configure:17478: checking for openssl/ssl.h in /root/develop/iQAC/openssl-1.1.1
configure:17485: result: yes
configure:17501: checking whether compiling and linking against OpenSSL works
Trying link with OPENSSL_LDFLAGS=-L/root/develop/iQAC/openssl-1.1.1/lib; OPENSSL_LIBS=-lssl -lcrypto; OPENSSL_INCLUDES=-I/root/develop/iQAC/openssl-1.1.1/include
configure:17523: gcc -pthread -o conftest  -I/root/develop/iQAC/openssl-1.1.1/include   -L/root/develop/iQAC/openssl-1.1.1/lib conftest.c -lssl -lcrypto -lcrypt -lpthread -ldl  -lutil -lm >&5
configure:17523: $? = 0
configure:17525: result: yes
configure:17548: checking for X509_VERIFY_PARAM_set1_host in libssl
configure:17577: gcc -pthread -o conftest  -I/root/develop/iQAC/openssl-1.1.1/include   -L/root/develop/iQAC/openssl-1.1.1/lib conftest.c -lssl -lcrypto -lcrypt -lpthread -ldl  -lutil -lm >&5
configure:17577: $? = 0
configure:17588: result: yes

因此,据我所知,我应该能够正确地将OpenSSL1.1.1链接到我的python3.9构建中,不过,对于openssl版本,我还是遇到了同样的错误

对于我做错了什么和/或我能做什么来完成编译过程,有什么建议吗?

更新#1

  • 试图运行以下命令,试图超过Makefiles ;)

代码语言:javascript
运行
复制
OPENSSL_LDFLAGS='-L/root/develop/iQAC/openssl-1.1.1/lib' OPENSSL_LIBS=-lssl OPENSSL_INCLUDES=-I/root/develop/iQAC/openssl-1.1.1/include make -j 3

仍未成功

更新#2

详细检查了编译日志,实际上构建本身并没有真正失败;openssl-1.1.1的include和lib路径也是正确的:

代码语言:javascript
运行
复制
building '_ssl' extension
gcc -pthread -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-generate -I./Include/internal -I/root/develop/iQAC/openssl-1.1.1/include -I./Include -I. -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/root/develop/iQAC/build-folder/Python-3.9.7/Include -I/root/develop/iQAC/build-folder/Python-3.9.7 -c /root/develop/iQAC/build-folder/Python-3.9.7/Modules/_ssl.c -o build/temp.linux-x86_64-3.9/root/develop/iQAC/build-folder/Python-3.9.7/Modules/_ssl.o
gcc -pthread -shared -fprofile-generate build/temp.linux-x86_64-3.9/root/develop/iQAC/build-folder/Python-3.9.7/Modules/_ssl.o -L/root/develop/iQAC/openssl-1.1.1/lib -L. -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib -lssl -lcrypto -o build/lib.linux-x86_64-3.9/_ssl.cpython-39-x86_64-linux-gnu.so
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-06 10:46:27

经过更多的尝试和错误之后,我成功地构建了所有python3.9模块

实际上,我所做的只是将configure选项更改为:

代码语言:javascript
运行
复制
./configure --enable-optimizations --prefix=/opt/python3.9 --enable-shared --with-openssl=/root/develop/iQAC/openssl-1.1.1

代码语言:javascript
运行
复制
./configure --enable-optimizations --prefix=/opt/python3.9 --with-openssl=/root/develop/iQAC/openssl-1.1.1 --with-computed-gotos --enable-loadable-sqlite-extensions --enable-shared

在这一点上,我听起来像是信任/构建系统中的一个问题,但我不确定。欢迎提出意见。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69840058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档