python离线环境迁移_Python离线项目迁移部署

本文详细介绍了如何在无法联网的目标主机上,通过离线方式迁移和部署Python3.5.2项目。首先在源主机下载Python及其依赖包,打包后在目标主机安装;接着打包项目文件,生成离线安装包;最后在目标主机创建虚拟环境,安装依赖并部署项目。
摘要由CSDN通过智能技术生成

最近遇到了一个场景:需要将Python项目文件打包到无法联网的主机上部署执行,本篇文章记录针对于该场景的处理方案。

说明:

源主机(可联网):安装了Python3和pip3

目标主机(无法联网):需安装和源主机相同的Python版本和pip3,部署执行项目文件

主机系统为centos,Python版本为3.5.2,通过虚拟环境+pip进行迁移

目标主机离线安装Python及pip3

源主机中下载所需包

Python3

首先,下载Python3,可以在官网或者通过源主机(可联网的其它主机)wget:

wget --no-check-certificate https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

Python3依赖包

然后,需要下载Python3的依赖包,可以通过centos镜像中去copy,不过我更推荐用yum生成的方式:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel epel-release gcc gcc-c++ xz-devel readline-devel gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel --downloadonly --downloaddir=/packages

命令执行完毕,你就会在/packages目录下发现所需的所有.rpm文件。

如果,源主机中已经安装了这些依赖,那么你可以用:

yum reinstall zlib-devel bzip2-devel openssl-devel ncurses-devel epel-release gcc gcc-c++ xz-devel readline-devel gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel --downloadonly --downloaddir=/packages

打包:

zip -r packages.zip packages/

目标主机中安装

将Python-3.5.2.tgz和packages.zip上传至目标主机。

首先,安装Python3依赖:

unzip packages.zip

cd packages/

rpm -Uvh *.rpm --nodeps --force

然后,安装Python3:

tar -zxvf Python-3.5.2.tgz

mkdir /usr/local/python3

cd Python-3.5.2

./configure --prefix=/usr/local/python3 # 将Python3安装在/usr/local/python3

make && make install # 编译安装

ln -s /usr/local/python3/bin/python3 /usr/bin/python3 # 创建python3软链接

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 # 创建pip3软链接

安装完毕,可通过:

Python3 -V

pip3 -V

查看并检查安装的版本

源主机中打包项目文件

若项目中创建虚拟环境,首先激活虚环境,然后进入项目文件,执行:

pip3 freeze > requirements.txt

将当前项目中的库列表生成并保存在requirements.txt中。

然后,通过pip生成批量离线安装包(whl文件):

pip wheel --wheel-dir=./tmp/packages -r requirements.txt

执行完毕之后,你会发现/tmp/packages中包含了项目所需的所有.whl

打包项目文件:

zip A.zip A/

目标主机中部署

上传A.zip至目标主机,创建虚环境,并激活(python3 自带了venv):

python3 -m venv test_venv

cd test_venv

source bin/activate

解压项目代码A.zip,并切换:

unzip A.zip

cd A/

安装项目Python依赖模块:

pip3 install --no-index --find-links=tmp/packages -r requirements

安装完毕,检查:

pip3 freeze

当然你也可以通过python命令行import进行检验哈哈。

最后,执行项目启动脚本(startup.sh)部署:

chmod +x ./startup.sh

nohup ./startup.sh > a-log 2>&1 &

以上,就完成了整个项目的迁移部署。

原文出处:https://www.cnblogs.com/ybjourney/p/12521070.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值