系统包管理工具: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 是安装过程
- 源码目录 是指存放原始解压后的源代码的目录,有
Makefile
、setup.py
、configure
等文件,以及Lib
、Include
、Modules
等子目录,这些都是源代码文件和构建脚本。 - 安装目录 是指编译安装后 Python 可执行文件、库文件、模块等被放置的实际位置。根据您提供的信息,这个目录下应该包含
bin
(包含python3.12
、python3.12m
、pip3.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