centos7 python3.12.1 报错 No module named _ssl,坑我几个小时

CentOS 7 Apache SSL配置实战:从证书生成到生产加固 HTTPS是现代Web服务的安全基石,其核心依赖TLS协议、X.509数字证书与Web服务器的协同实现。理解SSL/TLS握手原理、证书信任链构建机制及私钥权限模型,是保障通信机密性与完整性的前提。在CentOS 7这一广泛使用的LTS发行版上,Apache 2.4与OpenSSL 1.0.2k的组合存在FIPS合规限制、SELinux上下文约束、模块加载顺序陷阱等特有挑战。本文聚焦真实运维场景,详解如何安全生成RSA/ECDSA私钥、构造含SAN的CSR、合并正确顺序的证书链,并通过加固SSLProtoc 阅读详情

网上的教程很多,但几乎是无效的,大部分是教大家改Modole/Setup文件,大家千万不要这么做,正确的办法如下:有用的话就收藏吧 😄

常见的错误如下:
 File "/usr/lib/python3.4/urllib/request.py", line 1244, in unknown_open
    raise URLError('unknown url type: %s' % type)
**urllib.error.URLError: <urlopen error unknown url type: 'https>**


>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/python3/lib/python3.6/ssl.py", line 101, in <module>
    import _ssl             # if we can't import it, let the error propagate
**ModuleNotFoundError: No module named '_ssl'**
  • 安装依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
由ModuleNotFoundError: No module named ‘_ssl‘引发的一场血案 阅读详情

相关推荐

完美解决:Python3.10报错 No module named ‘_ssl‘

一是OPENSSL后面的路径改成你自己的openssl目录,我的是/urs/local/openssl,这里原本是OPENSSL=/path/to/openssl/directory。原因就是python3.10和openssl3.0.5的版本配置文件跟以前有点区别,python3.10的版本OPENSSL不再是/usr/local/ssl 的默认路径,变成了/path/to/openssl/directory,已经提示得很明白了让你在这里写入openssl的路径。希望能帮到遇到同样问题的同学。

m0_65881299的博客 1万+

CentOS 7下用Certbot standalone模式快速获取SSL证书

SSL证书是HTTPS安全通信的基础,其核心原理是通过ACME协议完成域名控制权验证;Let’s Encrypt作为主流免费CA,支持HTTP-01和DNS-01两种挑战方式,其中standalone模式以轻量、解耦、免依赖的技术特性,成为裸机部署与自动化流程中最可靠的初始证书获取方案;它不修改Web服务器配置、不依赖现有服务,仅需开放80端口即可完成验证,在CentOS 7等传统企业环境中兼顾兼容性与稳定性;适用于Nginx/Apache证书初始化、CI/CD流水线集成及最小化系统HTTPS启动场景。

ckkay800264的博客 403

CentOS 8 Python 3.8 模块流与 venv 配置全指南

Python 解释器是现代开发的基础运行时,其模块完整性与版本管理直接影响虚拟环境、包安装和 IDE 集成的稳定性。在企业级 Linux 系统中,Python 并非开箱即用的独立程序,而是受模块流(Module Streams)机制约束的可声明式组件——它决定了 ssl、venv、sqlite3 等关键模块是否可用。CentOS 8 采用最小化运行时设计,需显式启用 python3:3.8 流并安装 @python38 组合包,才能获得完整开发能力。该机制兼顾安全隔离与 ABI 稳定性,但也带来 '装了却不

weixin_34208283的博客 317

CentOS 6.4 多版本Python共存实战:2.7.6与3.3.3安全隔离部署

Python多版本共存是Linux系统运维中的基础能力,其核心在于理解解释器隔离原理、动态链接机制与环境变量作用域。在老旧发行版如CentOS 6.4中,因系统工具强依赖Python 2.6.6,直接升级将导致yum、rpm等关键命令失效,因此必须通过源码编译+prefix路径隔离+altinstall机制实现安全共存。该方案不仅保障了遗留Django应用对Python 2.7.6的兼容性,也为asyncio等现代特性在Python 3.3.3上的落地提供支撑,广泛适用于监控系统、API网关及混合技术栈的生

weixin_34268753的博客 445

CentOS 7下Nginx/Apache反向代理配置Tomcat SSL加密

SSL/TLS加密是现代Web服务的基础安全机制,其核心原理是通过非对称加密完成密钥交换、对称加密保障传输效率,并依赖可信证书链建立身份信任。该技术显著提升数据机密性与完整性,广泛应用于Java Web系统(如Tomcat)的生产环境防护,尤其满足等保2.0、浏览器HTTPS强制要求及中间人攻击防御需求。在CentOS 7操作系统中,因Tomcat原生SSL存在性能瓶颈与OpenSSL兼容问题,工程实践中普遍采用Nginx或Apache作为反向代理实现SSL卸载(SSL Termination),既解耦证书

weixin_33924770的博客 512

CentOS 7 Nginx 部署 Let‘s Encrypt HTTPS 完整实践指南

HTTPS 是现代 Web 服务的基础安全要求,其核心在于可信数字证书的获取、配置与持续维护。Let’s Encrypt 作为主流免费 CA,依托 ACME 协议实现自动化证书管理,但实际落地需深度适配操作系统底层——尤其在 CentOS 7 这类长期支持却版本陈旧的发行版上,OpenSSL 版本限制、Python 环境缺失、SELinux 策略约束及 Nginx 编译依赖等环节极易导致证书不可信、HTTP/2 失效或续期静默失败。本文聚焦 CentOS 7 Minimal 环境下 Nginx 的 HTTP

culi3118的博客 629

CentOS 7 搭建 Python 3 开发环境:SCL + pyenv 最稳实践

Python 开发环境是软件工程的基础支撑,其核心在于版本隔离、依赖可控与系统安全。在 CentOS 7 这类企业级 Linux 发行版中,Python 2.7 系统绑定与 Python 3 需求并存构成典型矛盾,直接修改默认 Python 或滥用源码编译极易引发 yum 失效、SSL 模块缺失、venv 不可用等连锁故障。SCL(Software Collections)提供 Red Hat 官方签名的沙箱化 Python 3.6,保障系统稳定性;pyenv 则实现用户态多版本按需编译与无缝切换,天然支持

cuibinmo3519的博客 341

CentOS 7 + Nginx + Let‘s Encrypt 一键配置 HTTPS 实战指南

HTTPS 是现代 Web 服务的基础安全要求,其核心是基于 PKI 体系的数字证书验证机制。Let’s Encrypt 作为全球主流的免费 CA,通过 ACME 协议实现自动化证书签发与续期,大幅降低 TLS 部署门槛。在 CentOS 7 Minimal 这类精简 Linux 环境中,certbot 官方客户端凭借 EPEL 包集成、Nginx 插件原生支持和系统级 cron 续期能力,成为最稳定可靠的工程化选择。它不仅解决浏览器‘不安全’警告,更支撑 Service Worker、地理位置等关键前端

weixin_30312563的博客 487

【Python】 ModuleNotFoundError: No module named paho

这样的报错内容,闭关眼睛就知道肯定是缺少 xxx 依赖包导致的。所以出现这样的错误的通用解决方案就是安装 python 第三方依赖包即可。新导入的一个项目,启动后控制台报错。比如:可以使用以下命令安装。

No8g攻城狮的博客 3583

【Anaconda】解决“libGL error: MESA-LOADER: failed to open iris”问题

stackoverflow中的“libGL error: MESA-LOADER: failed to open iris”问题。而在自己创建的conda环境中的lib下出现`GLIBCXX_3.4.30’ not found 的情况。在上述解决方案中,将第一行命令的lib路径换成自己创建的conda环境lib路径,运行指令,问题解决。目前问题解决,总结一下查找资料以及解决方法。运行如下命令,发现本地支持。

quintus0505的博客 5016

SAP生产订单(创建-下达-发料-报工-入库)全流程及反向流程

SAP创建下达报工入库发料以及取消发料取消入库,批量下达删除关闭,生产订单出入库查询和状态更改查询记录

weixin_38974136的博客 2万+

深入理解HanLP1.x,填平可能遇到的坑

提取指定数量的摘要。自定义词典为什么要单独领出来讲呢?因为在我们的业务开发中,可能分词的效果并不理想,需要定制自己的词库,索引更加常用。例如:小米su7特斯拉modelY比亚042025款6575767670908我们需要分出小米su72025款等词。我们分别看看用字典和不用字典的效果。

static_coder的博客 971

RT-DETR改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进RT-DETR颈部网络

本文记录的是利用颈部结构优化RT-DETR的目标检测网络模型。利用改进后的颈部网络,通过跳层连接,避免了在进行反向传播时的梯度消失问题,并且引入跨尺度连接,可以实现不同级别和层次的特征充分融合,获取足够的高层语义信息和低层空间信息交换,从而在大规模变化场景下提高检测性能。GIRAFFEDET: A HEAVY-NECK PARADIGM FOR OBJECT DETECTION-GFPN包含了上述的跳层连接(dense-link和log2nlog _{2} nlog2​n-link)以及跨尺度连接(Quee

Limiiiing的博客 2217

深入剖析Zynq AMP模式下CPU1中断响应机制:从原理到创新实践

在异构计算领域,Zynq-7000系列SoC的AMP(Asymmetric Multiprocessing)模式堪称多核编程的瑞士军刀。独立运行环境:CPU0运行Linux,CPU1运行FreeRTOS或裸机程序硬件资源独占:CPU0管理DDR,CPU1使用OCM(片上内存)中断隔离:默认所有中断路由到CPU0这种架构非常适合需要实时响应的工业控制系统——比如用CPU0处理网络通信,CPU1负责电机控制。AMP模式下中断路由的底层原理多维度性能优化技巧工业级可靠性的实现方案。

QQ_778132974的博客 484

机器人视觉仿真软件:PCL (Point Cloud Library)_(8).点云分割技术

点云分割技术在机器人视觉处理中起着至关重要的作用,通过不同的分割方法可以有效地将点云数据中的不同物体或区域分离出来。PCL提供了丰富的分割算法,包括基于平面的分割、基于聚类的分割、基于模型的分割和基于条件的分割等。每种方法都有其适用的场景和优缺点,选择合适的方法可以显著提高点云处理的效率和准确性。希望本节的内容能够帮助读者更好地理解和应用点云分割技术。

kkchenjj的博客 817

基于STM32、HAL库的TLV320AIC3204IRHBR音频接口芯片驱动程序设计

* 开启所有数字部分 */#define TLV320AIC3204_REG_LEFT_HEADPHONE_OUT_VOLUME 0x0C /* 左声道耳机输出音量 */#define TLV320AIC3204_REG_DIGITAL_AUDIO_PATH_CONTROL 0x05 /* 数字音频路径控制 */#define TLV320AIC3204_REG_ANALOG_HP_FILTER_CONTROL 0x34 /* 模拟耳机滤波器控制 *//* 最大音量 */

corlin6688的博客 513

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: django配合celery/celery_beat/celery_results使用,migrate时出现时区错误ZoneInfoNotFoundError
下一篇: 【开篇】2023年pytest自动化测试框架教程 - 快速入门
Amio_
博客等级 码龄9年 2514粉丝 46原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值