Linux安装Python 3.11及解决openssl问题详细教程

Linux系统安装Python3

Linux系统:centos7

python版本:3.11

1、查看系统自带python

默认情况下,Linux会自带安装Python,可以运行python –version命令查看。

我们看到Linux中已经自带了Python2.7.5。再次运行python命令后就可以使用python命令窗口了(Ctrl+D退出python命令窗口)。

2、查看Linux默认安装的Python位置

看到/usr/bin/python和/usr/bin/python2都是软链接,/usr/bin/python指向/usr/bin/python2,而/usr/bin/python2最终又指向/usr/bin/python2.7。所以运行python/python2/python2.7是一样的。

3、安装python3

(1)下载sdk

登录https://www.python.org/downloads/source/,找到对应版本(我们以Python-3.11.3为例)。

直接下载(略过步骤(2)文件上传):

wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
(2)文件上传

将文件上传到Linux系统的某个目录下,根据自己情况上传,本例上传到了 /usr/local/mydev/python目录下.

(3)解压

执行 tar -zxvf Python-3.11.3.tgz命令,将文件解压到当前目录。

(4)准备编译环境

执行如下命令:

yum -y install gcc make zlib zlib-devel libffi libffi-devel readline-devel openssl-devel openssl11 openssl11-devel
(5)安装openssl11,后期的pip3安装网络相关模块需要用到ssl模块。
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
(6)编译安装

执行cd Python-3.11进入解压后的Python-3.11目录下,依次执行如下命令:

./configure --prefix=/usr/local/mydev/python/python3 --with-ssl

make && make install

介绍:

  • --prefix :选项指定Python 3的安装目录为 /usr/local/mydev/python/python3,你可以根据自己的需要修改安装目录。(可选)。用法:--prefix=/usr/local/mydev/python/python3
  • --enable-optimizations: 选项启用优化选项,以提高Python解释器的性能。这个选项会使用一些编译器优化和调整来提高Python的执行速度,但是会增加编译时间和内存使用。(可选)
  • --with-openssl :选项指定使用哪个OpenSSL库版本编译Python。在这个例子中,Python将使用 /usr/bin/openssl 路径下的OpenSSL库,这个路径下通常是OpenSSL库的二进制可执行文件的安装位置。(可选)。用法:--with-openssl=/usr/bin/openssl
  • --with-ssl :与 --with-openssl二选一,此方式就是不指定ssl
  • (7)创建软连接
    ln -s /usr/local/mydev/python/python3/bin/python3.11 /usr/local/bin/python3ls 
    
    -l /usr/local/bin/
    

    安装成功!当然此时还是可以使用Python2.7.5版本(运行python/python2/python2.7即可)。

    (8)配置环境变量

    配置环境变量主要是能快速使用pip3安装命令。

    执行 vi ~/.bash_profile,打开配置文件,添加如下配置:

    # 配置python
    
    vim ~/.bash_profile
    
    export PYTHON_HOME=/usr/local/mydev/python/python3
    export PATH=$PYTHON_HOME/bin:$PATH
    
    source ~/.bash_profile
    

    保存退出(:wq),执行source ~/.bash_profile命令使配置生效。执行echo命令,查看是否配置成功,如图:

    (9)查看及使用
    python3 --version
    
    python3
    

    附:

    1、pip镜像源安装

    一般:

    pip install package_name -i http://pypi.douban.com/simple/

    如果出现SSL限制:

    pip3 install package_name  -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
    
    镜像源

    豆瓣 http://pypi.douban.com/simple/
    中国科学技术大学http://pypi.mirrors.ustc.edu.cn/simple/
    华中科技大学http://pypi.hustunique.com/
    清华:https://pypi.tuna.tsinghua.edu.cn/simple
    阿里云:http://mirrors.aliyun.com/pypi/simple/
    山东理工大学:http://pypi.sdutlinux.org/

    全局设置
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    #会在pip的根目录上新建pip.ini文件,内容如下
    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    #自行添加的
    [install]
    trusted-host=mirrors.aliyun.com
    #可以换成想要的镜像源
    
    2、重新安装openssl

    参考文档:python3.11安装, 解决pip is configured with locations that require TLS/SSL问题

    原因:系统版本centos7.4,其中openssl的版本为OpenSSL 1.0.2k-fips,而python3.11需要的openssl的版本为1.1.x及以上,需要对openssl进行升级,并重新编译python3.11(yum 安装的openssl 版本都比较低)。

    1.下载openssl
    wget https://www.openssl.org/source/openssl-3.0.7.tar.gz
    tar -zxvf openssl-3.0.7.tar.gz
    cd openssl-3.0.7
    
    2.编译安装
    ./config --prefix=/usr/local/openssl
    make
    make install
    
    3.备份原配置
    mv /usr/bin/openssl /usr/bin/openssl.bak
    mv /usr/include/openssl/ /usr/include/openssl.bak
    
    4.新版配置
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl
    ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/local/lib64/libssl.so
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    
    5.写入openssl库文件的搜索路径
    echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf
    
    6.使修改后的/etc/ld.so.conf生效
    ldconfig -v
    
    7.查看openssl版本
    openssl version
    
    8.查看openssl的位置
    which openssl
    
    物联沃分享整理
    物联沃-IOTWORD物联网 » Linux安装Python 3.11及解决openssl问题详细教程

    发表评论