Linux安装Python3.11以及解决openssl问题

本文介绍了在CentOS7系统中如何从源代码编译安装Python3.11,包括查看系统自带的Python版本,下载PythonSDK,配置编译环境,安装openssl,创建软连接,配置环境变量以及设置pip的镜像源。整个过程详细阐述了每个步骤和相关选项的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
### 安装和配置Python 3.11 #### 准备工作 为了确保顺利安装Python 3.11,在开始之前需确认已安装必要的依赖库。对于基于Red Hat的企业版Linux (RHEL) 或CentOS,可以使用yum来安装这些依赖项[^2]。 ```bash sudo yum groupinstall "Development Tools" sudo yum install openssl-devel bzip2-devel libffi-devel zlib-devel wget ``` #### 下载并编译源码 下载指定版本的Python源代码包,并将其解压缩到本地文件夹中。进入解压后的目录`Python-3.11`,运行配置脚本以准备编译环境: ```bash wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz tar -xf Python-3.11.9.tgz cd Python-3.11.9 ./configure --prefix=/usr/local/python3 --with-ssl make && make install ``` 上述命令中的`--prefix`参数指定了自定义安装路径,这有助于避免覆盖系统默认的Python解释器版本[^1]。 #### 创建符号链接 为了让新安装Python全局可用,可以通过创建符号链接的方式使新的Python版本成为系统的默认选项之一。注意这里的路径应根据实际安装位置调整: ```bash ln -s /usr/local/python3/bin/python3.11 /usr/local/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip ``` 验证设置是否生效: ```bash python3 -V pip -V ``` 如果一切正常,则会显示刚刚安装好的Python版本号以及对应的pip版本信息[^3]。 #### 更新环境变量(可选) 虽然通过创建符号链接已经可以让大多数情况下正常使用新版本的Python,但如果希望更彻底地集成至shell环境中,还可以考虑编辑`.bashrc`或其他相应的Shell初始化文件加入PATH环境变量修改语句。不过通常来说这不是必需的操作,因为前面提到的方法已经足够满足日常开发需求。 重启计算机可以使更改完全生效,尽管并非总是必要,但在某些特定场景下这样做可能更加稳妥。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值