当前位置: 首页 > news >正文

linux 安装python django pip 遇到的问题

Python解决SSL不可用问题

解决方案:

首先要明白python版本需要和openssl的版本需要相对匹配的,在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl,linux自带的openssl版本过低

1、查看liunx系统的openssl版本信息:
openssl version

如图所示:小编的买的liunx服务器自带的openssl版本为1.1.1a ,然而对于小编来说,要安装python3.10的版本来说,openssl的版本太低了,因此需要更新openssl的版本才能满足要求;

2、更新openssl版本:
(1)安装相关依赖

yum install gcc libffi-devel zlib* openssl-devel  perl* -y

2)官网下载openssl版本

wget https://www.openssl.org/source/openssl-3.0.1.tar.gz
(3)解压openssl
tar -zxvf openssl-3.0.1.tar.gz
(4)编译openssl
  1. cd openssl- 1.1.1-pre8
  2. . /config --prefix=/usr/local/openssl no-zlib #不需要zlib
  3. make
  4. make install
    3.备份原配置
  1. [root@s 2-hadoop-test ~]# mv /usr/bin/openssl /usr/bin/openssl.bak
  2. [root@s 2-hadoop-test ~]# mv /usr/include/openssl/ /usr/include/openssl.bak
4.新版配置
  1. #将安装好的openssl 的openssl命令软连到 /usr/bin/openssl
  2. [root@s 2-hadoop-test ~]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
  3. #软链到升级后的libssl.so
  4. [root@s 2-hadoop-test ~]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
  5. #将安装好的openssl命令软连到 /usr/bin/openssl
  6. ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
5.修改系统配置
  1. #写入openssl库文件的搜索路径
  2. echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
  3. #使修改后的/etc/ld.so.conf生效
  4. ldconfig 
  5. 如果报错openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory
  • 编辑 /etc/ld.so.conf 文件并添加共享库文件所在的目录。例如,在文件中添加一行:

    /path/to/openssl/lib(有可能lib64)
  • 运行以下命令使更改生效:

    ldconfig
  • 编辑 /etc/ld.so.conf 文件并添加共享库文件所在的目录。例如,在文件中添加一行:

    /path/to/openssl/lib
  • 运行以下命令使更改生效:

    sudo ldconfig
openssl version   查看版本完成   

重点执行这个  可以一步安装python和ssl使用

再升级python2---到python3

1.检查确认系统的相关信息

[root@zstest1 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@zstest1 ~]# uname -a
Linux zstest1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@zstest1 ~]# python -V
Python 2.6.6
我的进行软件升级系统是CentOS6.5-x86_64的,内核2.6.32,当前的python版本号为2.6.6

yum install make gcc gcc-c++ zlib* -y

yum install gcc libffi-devel zlib* openssl-devel  perl* -y

2.下载安装Python-3.6.2

1) 下载Python-3.6.2.tgz软件包

[root@zstest1 ~]# mkdir -p /server/tools/
[root@zstest1 tools]# cd /server/tools/
[root@zstest1 tools]# wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
2) 解压编译安装

[root@zstest1 tools]# tar -xf Python-3.6.2.tgz
[root@zstest1 tools]# cd Python-3.6.2
[root@zstest1 Python-3.6.2]# 

./configure --prefix=/usr/local/python37   (指定openssl路径)
make
make install


[root@zstest1 Python-3.6.2]# make
[root@zstest1 Python-3.6.2]# make install
# 如果编译出错,需要检查make,gcc等是否安装好

3) 安装完成,需要更改默认的python版本

# 检查当前默认的python2,默认自带的python位置在”/usr/bin/“目录下

[root@zstest1 Python-3.6.2]# ll /usr/bin/python*
-rwxr-xr-x 2 root root 9032 11月 22 2013 /usr/bin/python
lrwxrwxrwx. 1 root root 6 3月 20 2016 /usr/bin/python2 -> python
-rwxr-xr-x 2 root root 9032 11月 22 2013 /usr/bin/python2.6
# 检查新安装的python3,默认编译安装的python位置在”/usr/local/bin/“目录下

复制代码
复制代码
[root@zstest1 Python-3.6.2]# ll /usr/local/bin/python*
lrwxrwxrwx 1 root root 9 10月 31 16:48 /usr/local/bin/python3 -> python3.6
-rwxr-xr-x 2 root root 9630001 10月 31 16:48 /usr/local/bin/python3.6
lrwxrwxrwx 1 root root 17 10月 31 16:48 /usr/local/bin/python3.6-config -> python3.6m-config
-rwxr-xr-x 2 root root 9630001 10月 31 16:48 /usr/local/bin/python3.6m
-rwxr-xr-x 1 root root 3066 10月 31 16:48 /usr/local/bin/python3.6m-config
lrwxrwxrwx 1 root root 16 10月 31 16:48 /usr/local/bin/python3-config -> python3.6-config
复制代码
# 修改默认的python

# 删除旧的python的软连接,创建新的python2和python3的软连接

[root@zstest1 Python-3.6.2]# cd /usr/bin/
[root@zstest1 bin]# rm -f python2
[root@zstest1 bin]# mv python python2.6.ori
[root@zstest1 bin]# ln -s python2.6 python2
[root@zstest1 bin]# ln -s /usr/local/bin/python3 /usr/bin/python
4) 检查修改后的python版本

[root@zstest1 bin]# python -V
Python 3.6.2
[root@zstest1 bin]# python2 -V
Python 2.6.6
[root@zstest1 bin]# python3 -V
Python 3.6.2

pip使用也需要别名  软连接

ln -s /home/lq/mytools/python3.6.9/bin/pip3 /usr/bin/pip3

安装python的路径  

pip3 -V

可根据提示升级pip 

pip3 install --upgrade pip


# 可以看到,默认打开的python版本已经是3.6.2,至此python的版本已经升级成功

3.后续的软件问题处理

# python的默认版本修改为3.x之后,系统对于yum的调用会出问题,所以需要修改下yum的相关配置

[root@zstest1 bin]# vim /usr/bin/yum
# 需要检查确认以下配置

#!/usr/bin/python2
# 这样,修改后的yum依然可以调用python2.6.6的python,在使用yum安装软件时就不会报错了

# 以上是在CentOS6.5系统上进行的python版本升级,CentOS7.2上面的默认python版本为2.7.5,可以使用相同的方法进行修改,不过CentOS7.2的python链接稍有不同,需要注意

[root@centos72 ~]# ll /usr/bin/python*
lrwxrwxrwx. 1 root root 7 10月 26 2016 /usr/bin/python -> python2
lrwxrwxrwx. 1 root root 9 10月 26 2016 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 20 2015 /usr/bin/python2.7
# 另外就是,CentOS7.2还有另外一个文件需要修改

[root@centos72 ~]# vim /usr/libexec/urlgrabber-ext-down
# 检查确认以下配置:

#!/usr/bin/python2

 

相关文章:

linux 安装python django pip 遇到的问题

Python解决SSL不可用问题 解决方案: 首先要明白python版本需要和openssl的版本需要相对匹配的,在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl,linux…...

【问题解决】【爬虫】抓包工具charles与pycharm发送https请求冲突问题

问题: 开启charles抓包,运行pycharm发送https请求报以下错误 解决: 修改python代码,发送请求时添加verify false,此时charles也能抓取到pycharm发送的请求 2. 关闭charles抓包,取消勾选window proxy...

Hadoop3教程(二):HDFS的定义及概述

文章目录 (40)HDFS产生的背景和定义(41)HDFS的优缺点(42)HDFS组成架构(43)HDFS文件块大小(面试重点)参考文献 (40)HDFS产生的背景和定…...

【物联网+JAVA 】智慧工地源码

一、什么是智慧工地? 工地本身不拥有智慧,工地的运作是依赖于人的智慧。工地信息化技术,能够减少对人的依赖,使工地拥有智慧。 智慧工地,就是立足于“智慧城市”和“互联网”,采用云计算、大数据和物联网…...

001数据安全传输-多端协议传输平台:Openssl安装和配置 - EVP代码测试

001数据安全传输-多端协议传输平台:Openssl安装和配置 - EVP代码测试 文章目录 001数据安全传输-多端协议传输平台:Openssl安装和配置 - EVP代码测试1. 安装1.1 windows下安装openssl1.2 Linux下安装OpenSSL 2. VS中使用openssl3. 测试 1. 安装 1.1 win…...

关于小编入坑第512天

​机缘 最初成为创作者的初心:总结记录整个学习前端的历程 日常学习过程中的记录: 先思考,整个程序逻辑流程是否出现问题 再文档,根据相关文档了解源头,学会看懂文档,是一个锻炼自学前端能力的关键一步 …...

VS2015编译Qt工程发生MSB4018错误完整解决过程

一、错误产生环境 操作系统:Windows10 开发工具:VS2015企业版 Qt版本:Qt5.7.1 64位 二、错误内容 MSB4018 “VCMessage”任务意外失败。 System.FormatException: 索引(从零开始)必须大于或等于零,且小于参数列表的大小。 …...

如何使用JMeter测试导入接口/导出接口

今天一上班,被开发问了一个问题:JMeter调试接口,文件导入接口怎么老是不通?还有导出文件接口,不知道文件导到哪里去了? 我一听,这不是JMeter做接口测试经常遇到的嘛,但是一时半会又…...

[入门一]C# webApi创建、与发布、部署、api调用

一.创建web api项目 1.1、项目创建 MVC架构的话,它会有view-model-control三层,在web api中它的前端和后端是分离的,所以只在项目中存在model-control两层 1.2、修改路由 打开App_Start文件夹下,WebApiConfig.cs ,修改路由&…...

关于Vue+webpack使用unocss编写CSS,打包后CSS没加前缀

关于Vuewebpack使用unocss编写CSS,打包后CSS没加前缀,封装了一个插件去解决了这个问题 unocss-postcss-webpack-plugin unocss在vite中使用配置,关于unocss在vite中使用,自行查阅官网 https://unocss.dev/integrations/vite ,vi…...

软件工程与计算总结(十一)人机交互设计

目录 ​编辑 一.引例 二.目标 三.人类因素 1.精神模型 2.差异性 四.计算机因素 1.可视化设计 2.常见界面类型 五.人机交互设计的交互性 1.导航 2.反馈 3.设计原则 六.设计过程 1.基本过程 2.界面原型化 一.引例 无论软件功能多么出色,亦或内部的构造…...

Jmeter组件执行顺序与作用域

一、Jmeter重要组件: 1)配置元件---Config Element: 用于初始化默认值和变量,以便后续采样器使用。配置元件大其作用域的初始阶段处理,配置元件仅对其所在的测试树分支有效,如,在同一个作用域的…...

第一天商城项目

复盘 1.maven高级部分聚合和继承 maven聚合工程(深度剖析)_一宿君的博客-CSDN博客 2.yml配置文件 mybatis mybatis: mapper-locations: classpath:mappers/*mapper.xml mapper-locations:这是一个子键,用于指定MyBatis映射文件(Mapper XML…...

C++笔记之通用多态函数包装器std::function

C笔记之通用多态函数包装器std::function code review! 文章目录 C笔记之通用多态函数包装器std::function1.存储自由函数,lambda,std::bind 调用的结果2.存储到成员的调用3.存储到函数对象四.基本语法五.使用std::function定义函数对象六.使用std::fu…...

Linux命令(92)之passwd

linux命令之passwd 1.passwd介绍 linux命令passwd是用来设置/更改用户密码 2.passwd用法 passwd [参数] username passwd常用参数 参数说明--stdin非交互式密码设置-l停止用户使用-u启用停止的用户-d删除密码 [rootcentos79-3 ~]# passwd ztj Changing password for user …...

光电柴微电网日前调度报告

摘要 微电网是目前国内外应用较为广泛的一种绿色可再生能源,近几年我国微电网产业的发展十分迅速。然后,越来越多的微电网系统建立并网,微电网产生的电能受外界因素影响较大,具有一定的随机性和波动性,给并网后的电力系…...

Godot 单元测试

前言 单元测试是我们常用的功能,Godot作为一个游戏,单元测试和热重载是我们常用的功能。这里我们讲解最简单的单元测试的情况。 Godot 配置 我们添加一个最简单的节点,挂载一个最简单的脚本。 添加测试方法(只能是静态方法&…...

2.9 深入GPU硬件架构及运行机制

五、GPU技术要点 1.SMID和SIMT SIMD(Single Instruction Multiple Data)是单指令多数据,在GPU的ALU(在Core内)单元内,一条指令可以处理多维向量(一般是4D)的数据。比如&#xff0c…...

【苍穹外卖 | 项目日记】第四天

前言: 今天状态还可以,既有自己实战独立写接口,又听了课,学习了新的知识 目录 前言: 今日完结任务: 今日收获: 实现店铺状态接口 杂项知识点: 总结: 今日完结任务…...

零代码编程:用ChatGPT批量采集bookroo网页上的英文书目列表

bookroo网页上有很多不错的英文图书书目。比如这个关于儿童花样滑冰的书单: https://bookroo.com/explore/books/topics/ice-skating 怎么批量下载下来呢? 这个网页是动态网页,要爬取下来比较麻烦,可以先查看源代码,…...

7.定时器

定时器资源 CC2530有四个定时器TIM1~TIM4和休眠定时器 TIM1 定时器1 是一个独立的16 位定时器,支持典型的定时/计数功能,比如输入捕获,输出比较和PWM 功能。定时器有五个独立的捕获/比较通道。每个通道定时器使用一个I/O 引脚。定时器用于…...

计算机网络 | 网络层

计算机网络 | 网络层 计算机网络 | 网络层功能概述SDN(Software-Defined Networking)路由算法与路由协议IPv4IPv4 分组IPv4 分组的格式IPv4 数据报分片 参考视频:王道计算机考研 计算机网络 参考书:《2022年计算机网络考研复习指…...

21GA-ELM,遗传算法优化ELM预测,并和优化前后以及真实数值进行对比,确定结果,基于MATLAB平台,程序已经调通,可以直接运行,需要直接拍下。

GA-ELM,遗传算法优化ELM预测,并和优化前后以及真实数值进行对比,确定结果,基于MATLAB平台,程序已经调通,可以直接运行,需要直接拍下。 21matlab时间序列预测极限学习遗传优化算 (xiaohongshu.co…...

287_C++_TaskQueue管理任务队列和定时器(头文件.h)

#ifndef TASKQUEUE_H #define TASKQUEUE_H#include <sys/types.h> #include <stdlib.h> #include <pthread.h>...

Hadoop+Zookeeper+HA错题总结(一)

题目3&#xff1a; 下列哪项通常是hadoop集群运行时的最主要瓶颈&#xff1f;() [单选题] A、CPU B、网络 C、磁盘 IO D、内存 【参考答案】: C 【您的答案】: D 这道题的答案取决于集群的性能&#xff0c;一般来说运行时的主要瓶颈是网络。但是如果集群的磁盘IO性能较差&am…...

React高级特性之context

例1&#xff1a; createContext // 跨组件通信Context引入createContext import React, { createContext } from react// App传数据给组件C App -- A -- C// 1. 创建Context对象 const { Provider, Consumer } createContext()function SonA () {return (<div>我是…...

【OS】操作系统课程笔记 第五章 并发性——互斥、同步和通信

并发性&#xff1a;并发执行的各个进程之间&#xff0c;既有独立性&#xff0c;又有制约性&#xff1b; 独立性&#xff1a;各进程可独立地向前推进&#xff1b; 制约性&#xff1a;一个进程会受到其他进程的影响&#xff0c;这种影响关系可能有3种形式&#xff1a; 互斥&am…...

RabbitMQ概述原理

RabbitMQ是一种消息队列中间件&#xff0c;其主要作用是在应用程序之间传输数据。它基于AMQP&#xff08;高级消息队列协议&#xff09;实现&#xff0c;可以用于不同语言和不同操作系统之间的通信。 RabbitMQ的工作原理是生产者将消息发送到队列中&#xff0c;消费者从队列中接…...

8.Covector Transformation Rules

上一节已知&#xff0c;任意的协向量都可以写成对偶基向量的线性组合&#xff0c;以及如何通过计算基向量穿过的协向量线来获得协向量分量&#xff0c;且看到 协向量分量 以 与向量分量 相反的方式进行变换。 现要在数学上确认协向量变换规则是什么。 第一件事&#xff1a;…...

RustDay04------Exercise[21-30]

21.使用()对变量进行解包 // primitive_types5.rs // Destructure the cat tuple so that the println will work. // Execute rustlings hint primitive_types5 or use the hint watch subcommand for a hint.fn main() {let cat ("Furry McFurson", 3.5);// 这里…...