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

4.新版配置
  1. #将安装好的openssl 的openssl命令软连到 /usr/bin/openssl
  2. root@s 2-hadoop-test \~\]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl

  3. root@s 2-hadoop-test \~\]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so

  4. 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 ``` ```

相关推荐
小小福仔5 分钟前
Python爬虫第四战(使用防盗链下载视频)
爬虫·python·音视频·反爬·防盗链referer
明月看潮生16 分钟前
青少年编程与数学 02-016 Python数据结构与算法 23课题、分布式算法
分布式·python·算法·青少年编程·编程与数学
^_^ 纵歌17 分钟前
用python比较两个mp4是否实质相同
开发语言·python·音频·视频
一直走下去-明18 分钟前
使用python帮助艺术家完成角色动画和服装模型等任务
开发语言·图像处理·pytorch·python·opencv·ai作画
铭阳(●´∇`●)19 分钟前
Python内置函数---anext()
笔记·python·学习
长流小哥37 分钟前
Linux网络编程实战:从字节序到UDP协议栈的深度解析与开发指南
linux·c语言·开发语言·网络·udp
恶霸不委屈1 小时前
突破精度极限!基于DeepSeek的无人机航拍图像智能校准系统技术解析
人工智能·python·无人机·deepseek
u0103731061 小时前
Django REST Framework (DRF)
后端·python·django
雨中夜归人1 小时前
自动化测试工具playwright中文文档-------14.Chrome 插件
python·测试工具·自动化·pytest·playwright
极小狐1 小时前
极狐GitLab 功能标志详解
linux·运维·服务器·elasticsearch·gitlab·极狐gitlab