半自动化使用.bat手动打包迁移python项目

前言


        本文中的部分内容来源于网络搜索和个人实践总结。文中若有任何错误,还请读者批评指正。本文仅用于学习研究,不作为任何商业用途。

        在前期文章中,我使用 Gradio 库构建了几个简单的应用程序,但使用Pyinstaller打包失败,我介绍了如何通过迁移虚拟环境再通过.bat脚本直接进入虚拟环境编译运行代码,实现一个类似打包的效果

打包gradio应用的一次成功尝试_friklogff的博客-CSDN博客

       这篇文章我们继续完善,真正实现手动打包成一个可以完美实现打包迁移的.exe(以没有任何环境的全新虚拟机进行模拟)       

目录

前言

一.问题背景

二.解决方案

2.1前期准备

2.1.1 bat转exe工具

2.1.2 IOC图标生成工具

2.2 我的快速迁移方式

三.总结


一.问题背景

pyinstaller不可用,需要打包迁移python项目提交作品

二.解决方案

2.1前期准备


2.1.1 bat转exe工具

BAT to EXE Converter

2.1.2 IOC图标生成工具

在线生成ICO图标
 

2.2 我的快速迁移方式

1.在新环境创建一个文件夹,将需要打包的项目代码放进去,cmd中输入以下代码,新建虚拟环境,激活虚拟环境,直接运行代码,我们需要打包的文件是gui.py

rem 创建虚拟环境
python -m venv venv
rem 激活虚拟环境
call venv\Scripts\activate.bat
rem 运行代码
python gui.py


2.通过反复运行python gui.py产生报错,得知这个虚拟环境中未安装的包

3.根据运行结果不断补充包,如图就需要安装:

半自动化使用.bat手动打包迁移python项目_第1张图片

pip install -i https://mirrors.aliyun.com/pypi/simple/ websocket

5. 重复第四步记录你安装了哪些包,然后创建一个如下run.bat文件

chcp 65001
@echo off

rem 检查python是否安装 
python -V >nul 2>&1
if %errorlevel% == 0 (
  echo Python已安装,版本为:
  python -V
) else (
  echo Python未安装,开始下载安装包
  curl -O https://mirrors.huaweicloud.com/python/3.8.0/python-3.8.0-amd64.exe
  echo 安装包下载完成,开始安装
  python-3.8.0-amd64.exe /quiet InstallAllUsers=1 PrependPath=1
  echo Python安装完毕
)


rem 创建虚拟环境 
python -m venv venv
call venv\Scripts\activate.bat

rem 安装依赖中,请勿退出(这里修改为你第四步安装过的包)
pip install -i https://mirrors.aliyun.com/pypi/simple/ websocket
pip install -i https://mirrors.aliyun.com/pypi/simple/ websocket-client
pip install -i https://mirrors.aliyun.com/pypi/simple/ gradio
pip install -i https://mirrors.aliyun.com/pypi/simple/ sxtwl


python gui.py

这个.bat可以为没安装python的环境静默安装python3.8,使用这个.bat,你可以向任意空文件夹放入你的.py代码,以及run.bat,双击run.bat打开即可自动配置一个虚拟环境并运行你的代码

6.使用bat to exe为run.bat添加图标,并打包为exe

半自动化使用.bat手动打包迁移python项目_第2张图片

三.总结


        针对打包Gradio应用的需求,我尝试了多种方案,PyInstaller/cx_freeze/pyfreeze/setuptools存在兼容性问题;采用Docker等专业工具又过于复杂。经反复试验,我发现直接迁移Python虚拟环境是一种可行的解决方案。本篇文章是对上一篇文章的总结和拓展整合

打包gradio应用的一次成功尝试_friklogff的博客-CSDN博客

        该方案的关键在于准备工作充分和迁移步骤合理。准备工作包括确认环境依赖和批处理文件的编写;迁移步骤包含拷贝代码、通过批处理文件自动化重建虚拟环境、安装依赖模块、创建启动脚本等。还需要注意依赖下载、版本控制等问题。总之,迁移虚拟环境可以实现Gradio应用的打包。这为我的项目找到了适合的解决方案。

你可能感兴趣的:(python,gradio,python,开发语言)