• 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

     
    
  • 相关阅读:
    容器方式安装 nexus3 并作为yum私服
    python常用库之数据库orm框架之SQLAlchemy
    mac 安装java1.8
    深入探究MinimalApi是如何在Swagger中展示的
    SpringBoot事务详解
    Mybatis-Plus多种批量插入方案对比
    【C++11】lambda表达式
    基于PHP+mysql的自动化办公OA系统 python+django
    【目标搜索】基于matlab运动编码粒子群算法优化 (MPSO) 无人机搜索丢失目标【含Matlab源码 2254期】
    一起Talk Android吧(第四百二十回:贝塞尔曲线)
  • 原文地址:https://blog.csdn.net/Super_man54188/article/details/133794246