Linux安装Python3.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

你可能感兴趣的:(linux,python3.11,python)