Linux centos7宝塔-安装python3.12

1,119 阅读2分钟

系统包管理工具:dnf 是CentOS 8 使用;yum 是CentOS 7 使用

软件包管理工具:pip、pipenv、poetry、pyenv

宝塔里安装的python3.12是在虚拟环境中隔离开的,需要在终端用python3.12还是需要源码安装下

安装python3.12版本

1、下载源码包

yum install aria2  //安装aria2
aria2c https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz  

2、移动到opt目录下

mv Python-3.12.2.tgz  /opt/

3、解压

tar -zxvf Python-3.12.2.tgz

4、准备编译环境,安装必要的依赖:

yum groupinstall "Development Tools"

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel 

5、配置并编译安装

进入解压后的目录,进行配置、编译和安装。 创建符号链接以便轻松切换版本。同时,为方便后续使用,添加 --enable-optimizations 参数以启用编译优化:

cd Python-3.12.2
unset PYTHONPATH  //清理环境    
make clean
./configure --prefix=/opt/python3.12 --enable-optimizations
//安装到这个目录,不加参数--enable-optimizations 就不会安装如pip

make -j $(nproc)  # 这里`-j $(nproc)`选项允许make使用所有可用的CPU核心来加速编译过程。
make altinstall  # 安装Python, 参数altinstall通常用于安装多个版本的同一软件

make -j $(nproc) 是编译过程,而 make altinstall 是安装过程

  • 源码目录 是指存放原始解压后的源代码的目录,有 Makefilesetup.pyconfigure 等文件,以及 LibIncludeModules 等子目录,这些都是源代码文件和构建脚本。
  • 安装目录 是指编译安装后 Python 可执行文件、库文件、模块等被放置的实际位置。根据您提供的信息,这个目录下应该包含 bin(包含 python3.12python3.12mpip3.12 等可执行文件)、include(包含头文件)、lib(包含库文件)等子目录。

所以只要多了一个安装目录,就说明安装得差不多了

6、设置环境变量

为了让系统默认使用新安装的 Python 3.12,您需要修改环境变量。您可以选择在个人用户级别(针对单个用户)或系统级别(全局生效)进行设置。这里以修改个人用户(例如 your_username)的 .bashrc 文件为例:

echo 'export PATH="/opt/python3.12/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

如果您希望对所有用户生效,可以编辑 /etc/profile 或 /etc/bash.bashrc 文件(具体取决于您的系统配置),并在其中添加相同的 export 命令。

7、验证安装与版本切换

检查 Python 3.12 是否已成为默认版本:

/opt/python3.12/bin/python3.12 --version

输出应显示 Python 3.12.x,表明已成功切换至 Python 3.12。

8、将3.12.2设为主版本

mv /usr/bin/python3 /usr/bin/python3.bak 
chmod +x /opt/python3.12/bin/python3.12
ln -s /opt/python3.12/bin/python3.12 /usr/bin/python3
python3 --version

9、检查安装目录下是否有pip3.12

查看pip是基于python 3.6还是3.12的,如果是3.6的则需要创建符号链接

pip3 --version  # 查看pip是基于python 3.6还是3.12的

检查安装目录下是否有pip3.12

  • 有:执行命令,将pip3 指向 pip3.12
  • 无:重新编译安装python3.12
ln -s /opt/python3.12/bin/pip3.12 /usr/local/bin/pip3
hash -r #清除缓存
pip3 --version 

卸载python3.12

yum remove python3.12.2
rm -rf /opt/python3.12.2 # 替换为实际的 Python 安装路径 
rm /usr/local/bin/python3.12 # 删除可能存在的软链接
rm /usr/local/bin/python3.12.2 # 删除可能存在的软链接

yum命令报错:

大多是python版本问题,宝塔一般会有python2.7和python3.6,如果主python是3.6,那yum就会报错。因为yum主要以python2为主,只需修改链接以2.7为主 即可

ls -l /usr/bin/python
ls -l /usr/bin/python2 

//如果这些链接不再指向 Python 2.x(例如,`/usr/bin/python2.7`),您需要重新创建或修复它们:
rm /usr/bin/python
ln -s /usr/bin/python2.7 /usr/bin/python
rm /usr/bin/python2
ln -s /usr/bin/python2.7 /usr/bin/python2

wget下载慢

AI推荐使用aria2,是多线程下载的。但安装成功后也没见多快

yum install aria2  //安装aria2
aria2c url  //使用aria2下载的命令,url是下载链接

另外需要注意的是:python3.12用的是openssl111,而不是openssl