在CentOS 8.1系统中进行离线安装Python 3.9,主要涉及到两个步骤:准备离线安装包和进行离线安装。以下是详细的步骤说明:
一、准备离线安装包
-
在联网的CentOS系统上下载依赖包和Python源码
首先,你需要在另一台可联网的CentOS系统(可以是CentOS 8.1或其他版本,但建议尽量保持系统版本一致以避免兼容性问题)上下载所有必要的依赖包和Python 3.9的源码包。
-
下载依赖包:使用
yumdownloader
命令下载Python 3.9编译安装所需的依赖包。这些依赖包可能包括gcc
、openssl-devel
、bzip2-devel
、libffi-devel
、zlib-devel
等。注意,由于系统配置和版本差异,具体的依赖包列表可能会有所不同。你可以通过尝试编译Python 3.9源码来查看缺少哪些依赖,并据此下载。yum-y install yum-utils mkdir python3.9_rpm yumdownloader --resolve --destdir ./python3.9_rpm zlib-devel bzip2-devel openssl-devel ncurses-devel readline-devel gdbm-devel sqlite-devel tk-devel xz-devel ...
注意:上述命令中的依赖包列表仅作示例,请根据实际需要进行调整。
-
下载Python 3.9源码包:从Python官网下载Python 3.9的源码包。例如,你可以下载Python 3.9.x版本的源码包(其中x是具体的子版本号)。
wget https://www.python.org/ftp/python/3.9.x/Python-3.9.x.tgz
-
-
打包离线安装包
将下载的依赖包和Python源码包打包成一个或多个压缩文件,以便传输到离线环境中。
tar -zcvf python3.9_offline_install.tar.gz ./python3.9_rpm Python-3.9.x.tgz
3.或者自己下载python3.9.0.tgz安装包(linux版本)
这里直接在官方网站找到版本好对应的安装包下载即可
官方网站: https://www.python.org/downloads/release/python-390/
二、进行离线安装
-
传输离线安装包
将打包好的离线安装包传输到CentOS 8.1的离线环境中。这可以通过U盘、移动硬盘或其他物理介质完成。
-
解压离线安装包
在CentOS 8.1的离线环境中,解压离线安装包。
mkdir /home/python3 cd /home/python3 tar -zxvf /path/to/python3.9_offline_install.tar.gz
-
安装依赖包
使用
rpm
命令安装依赖包。注意,由于是在离线环境中,可能需要使用--nodeps
和--force
选项来强制安装依赖包,但这通常不推荐,因为这可能会导致依赖冲突。更好的做法是尽量确保依赖包之间的兼容性。cd python3.9_rpm rpm -Uvh ./*.rpm --nodeps --force # 谨慎使用 --nodeps 和 --force
-
编译安装Python 3.9
进入Python源码包解压后的目录,配置编译选项,并编译安装Python 3.9。
cd /home/python3 tar -zxvf Python-3.9.x.tgz cd Python-3.9.x ./configure --prefix=/usr/local/python3.9 # 指定安装目录 make sudo make altinstall # 使用 altinstall 避免覆盖系统默认的 Python 版本
-
验证安装
安装完成后,验证Python 3.9是否安装成功。
/usr/local/python3.9/bin/python3.9 --version
如果上述步骤中的某些依赖包在离线环境中无法找到或安装,你可能需要手动下载这些依赖包的源码并编译安装,或者考虑使用其他方法来安装Python 3.9,例如使用预编译的二进制包或容器化技术(如Docker)。
请注意,由于系统环境和版本差异,上述步骤中的具体命令和参数可能需要根据实际情况进行调整。
三、配置环境变量
-
找到你的Python安装路径:确保你知道Python的安装路径。在这个例子中,我们假设它是
/usr/local/python3.9/bin/python3.9
。 -
创建符号链接:你需要在
PATH
环境变量中的一个常用目录内创建一个指向你的Python解释器的符号链接。/usr/local/bin
是一个常用的位置,因为它通常已经包含在PATH
中。sudo ln -s /usr/local/python3.9/bin/python3.9 /usr/local/bin/python
这个命令创建了一个名为
python
的符号链接,它指向/usr/local/python3.9/bin/python3.9
。现在,当你输入python
命令时,它实际上会运行/usr/local/python3.9/bin/python3.9
。 -
验证设置:打开一个新的终端窗口(或重新加载你的shell配置,如果你之前修改了
.bashrc
或.bash_profile
等文件),然后输入:python --version
如果一切设置正确,你应该会看到类似
Python 3.9.x
的输出,其中x
是子版本号。 -
(可选)为
pip
创建符号链接:如果你也想通过pip
而不是pip3
或/usr/local/python3.9/bin/pip3.9
来安装Python包,你可以为pip
也创建一个符号链接:sudo ln -s /usr/local/python3.9/bin/pip3.9 /usr/local/bin/pip
pip --version
这样,你就可以使用
pip
命令来安装和管理Python包了。
请注意,如果你使用的是基于Debian的系统(如Ubuntu),并且你通过系统的包管理器(如apt)安装了Python,那么系统可能已经为你创建了这些符号链接。但是,如果你从源代码安装Python或使用了像Homebrew这样的包管理器,则可能需要手动创建这些链接。
另外,请确保你的用户有权在 /usr/local/bin
中创建文件,或者你可能需要将这些链接放在你的用户主目录下的某个位置,并将其添加到你的 PATH
环境变量中。但是,将全局工具放在 /usr/local/bin
中通常是更好的做法,因为它对所有用户都可用。