1.前言
主要过程如下:
(1)创建项目环境,生成requirements.txt文件。(如果已有可跳出)
(2)新建一个跟目标机器一样的操作系统,python环境的测试服务器,并下载Python项目所需第三方依赖包。
(3)从测试服务器下载依赖文件,上传至离线服务器上。
(4)安装Python 离线依赖包,运行 Python 项目。
PS1:本文中[pip3]是项目环境所设置。如果你本地提示无此命令,试试pip命令。
PS2:离线安装python教程地址
我以 window系统下开发环境,部署到 centos7 离线服务器上。
2.在测试服务器创建项目环境
如果已有requirements.txt,跳过本章节。
本项目主要是使用 pipenv 创建项目虚拟环境,如感兴趣详见 pipenv-教程
由于本项目未创建过程项目虚拟环境,所以导致无法生成requirements.txt文件。第一步就是要整理出项目虚拟环境,为生成requirements.txt文件做准备。
(1)创建项目虚拟环境
# 安装虚拟环境
pipenv install
# 进入虚拟环境
pipenv shell
(2)依次重新安装第三方依赖包
注:反复执行程序,通过pipenv install 依次安装依赖包,直至不出现
# 安装第三方依赖包命令
pipenv install <package 第三方依赖包> --skip-lock
(3)生成requirements.txt
# 生成requirements.txt
pipenv lock # 生成速度慢,耐心等待
pipenv requirements > requirements.txt
3.在虚拟机中下载第三方依赖包
根据目标服务器,创建一样系统环境、python环境虚拟机。主要原因是,window开发环境依赖包和 目标服务器centos7环境所需依赖包差异很多,尽量在一样环境下载依赖包,避免奇奇怪怪报错。h
(注:离线安装python教程地址)
# 1.打开项目所在地址
cd <project_path> # project_path为项目地址
# 2.下载第三方依赖包
pip3 download pipenv -d packages # 下载pipenv依赖包,保存至packages文件夹,用于创建离线环境
pip3 download -d packages -r requirements.txt # 下载requirements.txt相关依赖包
# 3.安装pipenv依赖包,进入项目虚拟环境
pip3 install pipenv --no-index --find-links=packages # 从packages文件夹,安装pipenv
ln -s /usr/local/python3/bin/pipenv /usr/local/bin/pipenv # 创建pipenv指令
pipenv shell # 进入虚拟环境
# 4.通过requirements.txt 批量安装依赖包
pipenv run pip3 install --no-index --find-links=packages -r requirements.txt
# 5.测试运行
# 在虚拟环境下,执行你所需 ***.py 文件,运行成功则ok。详见下图
4.转移第三方依赖包至目标服务器
- 从测试服务器中下载源代码 和 第三方依赖包
- 通过WinSCP.exe工具,将离线文件上传至服务器。(注:/home/python3文件夹,如果不存在,请手动创建)
(PS:packages文件夹中存在有离线第三方依赖包,下载完成后请核对下数量)
3. 从本地上传至目标服务器
上传至目标服务器的/home/python3/Smart_Construction-master文件夹 (注:按需上传至您的项目文件夹)
5.在目标服务器离线安装python项目
# 1.打开项目文件夹
cd /home/python3/Smart_Construction-master
# 2.安装pipenv依赖包
pip3 install pipenv --no-index --find-links=packages # 从packages文件夹,安装pipenv
# 3.进入项目虚拟环境
ln -s /usr/local/python3/bin/pipenv /usr/local/bin/pipenv # 创建pipenv指令
pipenv shell # 进入虚拟环境
# 4.通过requirements.txt 批量安装依赖包
pipenv run pip3 install --no-index --find-links=packages -r requirements.txt
# 5.运行程序,搞定收工。