python3.10及以上版本编译安装ssl模块

这篇具有很好参考价值的文章主要介绍了python3.10及以上版本编译安装ssl模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  由于python3.10之后版本不在支持libressl使用ssl,需要使用openssl安装来解决编译安装
python时候遇到的ssl模块导入失败的问题,这里需要用的openssl1.1.1版本或者更高版本

python3.10及以上版本编译安装ssl模块

编译安装openssl

下载地址
参见https://www.openssl.org/,包括以下版本:
https://www.openssl.org/source/openssl-3.1.0-alpha1.tar.gz
https://www.openssl.org/source/openssl-1.1.1s.tar.gz
https://www.openssl.org/source/openssl-3.0.7.tar.gz
编译安装
注:编译之前请先确保系统中安装了make以及gcc的软件包。,编译安装前确认/usr/include/openssl//为空
tar -zxf openssl-1.1.1s.tar.gz
cd openssl-1.1.1s/
./config -fPIC --prefix=/usr/include/openssl enable-shared
make
make install

其中:
 -fPIC: 位置无关代码
 --prefix=: 路径 一般选 /usr/include/openssl
 enbale-shared: 动态库

安装openssl3.0.7问题
  安装openssl3.0.7时候报错,查看对应文件显示模块缺少,需要加载导入模块

python3.10及以上版本编译安装ssl模块

报错原因: 缺少IPC/Cmd.pm模块

解决方法:
安装perl-CPAN

$ yum install -y perl-CPAN

进入CPAN的she模式,首次进入需要配置shel,按照提示操作即可

 $ perl -MCPAN -e shell

在shell中安装缺少的模块,确定是cpan[1]算是进入了操作命令入口

cpan[1]> install IPC/Cmd.pm

python3.10及以上版本编译安装ssl模块
退出界面回到shell

cpan[1]> quit
  安装成功后,重新编译OpenSSL即可

编译安装python3.11.2

下载地址

python下载地址

https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tgz
编译安装

需要修改解压后的python Moudle/Setup文件

tar -xf Python-3.11.2.tar.xz
cd Python-3.11.2/
需要修改解压后的python Moudle/Setup文件
# To statically link OpenSSL:
- # _ssl _ssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) \
+ _ssl _ssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) \
- #    -l:libssl.a -Wl,--exclude-libs,libssl.a \
+     -l:libssl.a -Wl,--exclude-libs,libssl.a \
- #    -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a
+     -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a
- # _hashlib _hashopenssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) \
+ _hashlib _hashopenssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) \
- #    -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a
+     -l:libcrypto.a -Wl,--exclude-libs,libcrypto.a

编译安装,注意configure命令
此处参考了:configure配置文章来源地址https://www.toymoban.com/news/detail-430277.html

chmod +x configure
mkdir /usr/local/python-3.11.2
./configure --prefix=/usr/local/python-3.11.2 --with-zlib=/usr/include/ --with-openssl-rpath=auto  --with-openssl=/usr/include/openssl  OPENSSL_LDFLAGS=-L/usr/include/openssl   OPENSSL_LIBS=-l/usr/include/openssl/ssl OPENSSL_INCLUDES=-I/usr/include/openssl
make -j 4
make install
验证是否成功安装ssl模块
/usr/local/python-3.11.2/bin/python3 -V
/usr/local/python-3.11.2/bin/python3 
# 执行下面命令不报错既正常
>>import _ssl
>>

到了这里,关于python3.10及以上版本编译安装ssl模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jupyter-notebook升级内核至Python3.9版本以上

      目录 1、用管理员身份打开Anaconda Prompt 2、Install 3、Activate 4、pywin32_postinstall.py -install  5、打开 6、问题 6.1、Jupyter-notebook默认文件夹位置(Home) 6.2、再次打开3.9版本需要重复操作5、打开 因为调用matplotlib库时出现版本不兼容的问题,我想将Python版本升级到3.9以上,搞了一下午

    2024年02月05日
    浏览(60)
  • 完美解决:Python3.10报错 No module named ‘_ssl‘

    报错详情: 操作系统为centos7,python版本为3.10.7,openssl版本为3.0.5,运行gunicorn报No module named \\\'_ssl\\\' 原因就是python3.10和openssl3.0.5的版本配置文件跟以前有点区别,python3.10的版本OPENSSL不再是/usr/local/ssl 的默认路径,变成了/path/to/openssl/directory,已经提示得很明白了让你在这里写入

    2024年02月12日
    浏览(45)
  • CentOS7环境编译python3.9版本pjsua

    环境:CentOS 7.6_x64    Python版本 :3.9.12 pjsip版本:2.13  pjsip地址:https://www.pjsip.org/ GitHub地址:https://github.com/pjsip/pjproject pjsip文档地址:https://docs.pjsip.org/en/latest/ 最新版本:2.13 pjsip是一个功能强大的sip协议栈和媒体处理库,MicroSIP软电话就是基于pjsip实现的,功能很强大。

    2024年02月08日
    浏览(72)
  • 下载python3.10版本pycharm仍显示python3.1以及官网如何下载旧版版本python

    第二节 安装Pycharm以及遇到的问题 目录 Day01新手小白学python 前言 一、pycharm下载安装 二、遇到的问题 1.下载的是python3.10版本仍显示python3.1 has reached its end-od-life and is no longer supported          2.官网如何下载旧版如3.9版本python         3.自定义安装路径 总结 安装Pycha

    2024年02月06日
    浏览(54)
  • python webdriver之find_element(python3.10版本下的变化)

    最近在用python练习,3.10版本下的python使用webdriver时,在百度各论坛或CSDN里,查到的获取元素方法都是 find_element_by_XX,比如 但是在这个版本的python里,每次这样使用都会报错说没有这种函数,在实验很多次之后发现,现在只能用 find_element(by=\\\'\\\',value=\\\'\\\') 其中by里可以是id、na

    2024年02月12日
    浏览(47)
  • Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

    import _ssl # if we can\\\'t import it, let the error propagate ImportError: No module named _ssl 参考试了好多文章,发现都不太好使,最终找到了解决方案,安装openssl的依赖 centos安装python3.7时,查阅知需要的openssl版本最低为1.0.2,但是centos 默认的为1.0.1,所以需要重新 更新openssl 如果有网,直接在

    2024年01月22日
    浏览(46)
  • Linux下 编译安装安装python3.8.16

    Linux下 编译安装安装python3.8.16,为了提高下载速度,采用华为云镜像下载。速度快得很 cd /opt/ 下载python3.8 wget https://mirrors.huaweicloud.com/python/3.8.16/Python-3.8.16.tgz tar -xzvf Python-3.8.16.tgz mkdir /usr/local/python3 cd Python-3.8.16/ ./configure clear ./configure --prefix=/usr/local/python3 make make install which

    2024年02月06日
    浏览(50)
  • centos7编译安装升级python3.11

    准备步骤 解压编译 替换升级

    2024年02月11日
    浏览(59)
  • centos7.9编译安装python3.7.2

    联网环境下编译安装python3.7.2,不联网则需要配置cnetos7.9离线源 下载解压软件包 安装依赖 编译安装 验证

    2024年02月06日
    浏览(39)
  • centos python3 安装psycopg2 模块

    安装异常 先安装postgresql-devel 再安装 psycopg2库介绍 psycopg2库介绍: Psycopg2是一个用于Python编程语言的第三方库,用于访问PostgreSQL数据库系统。它提供了一组工具和方法,可以轻松地在Python程序中进行数据库操作,包括查询、插入、更新、删除等操作。 以下是Psycopg2库的一些主

    2024年02月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包