• 已完成的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
    cffi
    1.15.0
    click8.0.3
    colorama
    0.4.4
    cryptography36.0.1
    Flask
    2.0.2
    Flask-Cors3.0.10
    itsdangerous
    2.0.1
    Jinja23.0.3
    MarkupSafe
    2.0.1
    paramiko2.9.2
    piexif
    1.1.3
    prettytable3.0.0
    pycparser
    2.21
    pyecharts1.9.1
    PyNaCl
    1.5.0
    simplejson3.17.6
    six
    1.16.0
    wcwidth0.2.5
    Werkzeug
    2.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
    
  • 相关阅读:
    httpsok-v1.13.0支持nginx证书部署管理
    蔚来杯2022牛客暑期多校训练营7 CFGJ
    通过使用阿里云服务器,搭建Java程序的运行环境
    【PCA降维】在人脸识别中的应用
    【CPP】数组名与指针
    Spring学习笔记——4
    30-33、SpringBoot项目部署\属性配置方式\多环境开发(一个文件)\多环境分组(多个文件)
    JZ-7GY-S002XMC跳合位电源监视继电器
    Flutter高仿微信-第28篇-好友详情-查看个人头像
    【Vue】使用插槽和具名插槽解决组件内容传递问题(2)
  • 原文地址:https://www.cnblogs.com/yushengchn/p/15886828.html