Ubuntu22.04离线安装python3.9
准备环境
在可连网的环境下安装和离线环境相同的Ubuntu系统版本,并下载以下系统依赖:
# 创建下载保存文件夹
sudo mkdir /tmp/apt-download -p # 这里之所以选择在tmp目录下,是因为在其它目录测试下载的时候都会有权限问题
sudo chmod 777 /tmp/apt-download # 防止因为权限问题出现下载失败
# 进入apt-download目录下载依赖
sudo apt-get download build-essential libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
sudo apt-get download liblzma-dev cpp binutils gcc make tcl g++ libaio1 libtinfo5 libmecab2 g++-11 gcc-11 libcc1-0 cpp binutils binutils-common libbinutils binutils-x86-64-linux-gnu libgcc-11-dev libstdc++-11-dev libctf0
sudo apt-get download libc6-dev dpkg-dev
sudo apt-get download vim-common vim-runtime
sudo apt-get download libdpkg-perl lto-disabled-list libc-dev-bin linux-libc-dev libcrypt-dev rpcsvc-proto libtirpc-dev libnsl-dev libncurses-dev libnspr4-dev libncurses-dev gnu-smalltalk gnu-smalltalk-common

PS:以上依赖有些重,给出的系统依赖是举个例子。关键是有些重点缺失的依赖可以根据 ./configure 编译时,日志信息看缺失哪些依赖在进行补充下载。
如下图所示:

离线安装下载的python安装系统依赖
将下载的deb依赖上传到离线环境服务器上,进入到对应文件夹内执行以下命令:
# 安装所有软件包,自动解决依赖关系
sudo dpkg -i *.deb

PS:如在安装过程中出现如上问题,只需要补充下载即可。
离线安装python3.9
1、解压python3.9到当前目录
[root@master1 soft] tar -zxvf Python-3.9.17.tgz
2、创建目录
[root@master1 module] mkdir /opt/module/python3.9
PS:需要手动创建python安装目录。
3、进入python解压的目录,编译并指定python的安装路径 ,使用root权限
[root@master1 Python-3.9.17]$ sudo ./configure --prefix=/home/bigdata/module/python3.9 --enable-optimizations
enable-optimizations:一个包含所有稳定优化的发布版本
PS:如后续在python中引入依赖时缺少相关依赖,重新编译需要从这一步执行开始。

PS:在编译过程中如出现依赖问题,重复上述补充下载。
4、安装python,使用root权限
[root@master1 Python-3.9.17]$ sudo make && make install

5、建立软连接
[root@master1 bin]$ sudo ln -s /home/bigdata/module/python3.9/bin/python3.9 /usr/bin/python3.9
[root@master1 bin]$ sudo ln -s /home/bigdata/module/python3.9/bin/pip3.9 /usr/bin/pip3.9
6、验证python版本
root@bigdata1:/usr/bin# python3.9 --version
Python 3.9.17
python引入依赖下载和导入
1、下载python引入包到本地
pip3.9 download -r requirements.txt -d ./
PS:requirements.txt文件为python的依赖版本管理。如:pykafka==2.8.0
2、安装python引入包
pip3.9 install --no-index --find-links=. -r requirements.txt
559




被折叠的 条评论
为什么被折叠?



