已完成的python项目-环境离线部署

python

python环境离线部署">python环境离线部署

当前生产环境中,有很多基于python开发的工具需要使用。

由于python工具往往涉及到很多依赖,在线状态下,可以通过pip requirements来管理安装。

但有时候,会遇到需要部署的环境,无法连接到pip源的情况。比如,客户端处于内部网或者无网络连接的情况的情况。

在这种情况下,准备完全离线的安装环境,可以大大降低工具部署成本。

在某项目中,开发了一个windows平台下基于python的数据显示工具。

假设客户的电脑上什么环境也没有,以下步骤小结了如何进行离线部署。

准备工作

1. 准备干净的Python包

考虑到尽量精简,在项目依赖不多的时候,建议使用python标准包部署环境。

在python官网或其他源上下载所需的python安装包并安装。

2. 创建一个python的虚拟环境

如果开发时没有隔离虚拟环境,可以在此时隔离。

假设已下载安装了标准Python包3.8,并安装在了D:/python3.8/

进入CMD命令行

D:\python3.8\python.exe -m venv d:\virtual_env

当然,如果已经配置了Path的系统变量,可以直接

python.exe -m venv d:\virtual_env

建立好新环境后,在新环境d:\virtual_env

pip freeze > requirments_zero.txt 

得到的应该是一个空文件。

3. 在虚拟环境下安装本项目需要的依赖,直到项目可以运行

将虚拟环境激活(切换pycharm的interpreter或者active虚拟环境)

这时候,新项目所需的包是未安装状态的,也无法运行。

对于已经开发完毕的项目,应当已经记录过一个requirements.txt,举例来说,本项目依赖:

(以下为requirements.txt)

flask

flask-cors

paramiko

pyecharts

piexif

这5行已经记录在了requirements.txt里

可以通过

pip install -r requirements.txt

安装

如果没有记录,则需要逐个排查安装依赖库

4. 生成含有所有依赖链的requirements.txt

当项目可以在新环境正常运行后,在新环境d:\virtual_env下

pip freeze > requirments_full.txt

会生成一个包含基于当前python版本的所有依赖链的清单,举例来说,本项目依赖:

(以下为requirements_full.txt)

bcrypt3.2.0

cffi1.15.0

click8.0.3

colorama0.4.4

cryptography36.0.1

Flask2.0.2

Flask-Cors3.0.10

itsdangerous2.0.1

Jinja23.0.3

MarkupSafe2.0.1

paramiko2.9.2

piexif1.1.3

prettytable3.0.0

pycparser2.21

pyecharts1.9.1

PyNaCl1.5.0

simplejson3.17.6

six1.16.0

wcwidth0.2.5

Werkzeug2.0.3

5. 下载依赖链的所有whl

通过以下命令,可以

pip download -r requirements_full.txt -d ./packages

经过1~5步,已经得到了:

    1. python安装包

  • 2 requirements_full.txt
  • 3 packages/ 文件夹

    这3份数据可以在其他PC上离线部署python环境

新环境部署

拷贝python安装包、requirements.txt 和 packages

  1. 安装python
  2. 安装好之后,进入命令行,输入以下命令离线安装packages

pip install --no-index --find-links=./packages -r requirements.txt

以上是 已完成的python项目-环境离线部署 的全部内容, 来源链接: utcz.com/z/387177.html

回到顶部