Pyinstaller打包exe完整教程

Pyinstaller打包exe完整教程原创文|Space9Python文件打包成可安装、无需Python依赖的高效可执行exe程序工具及环境PyInstallerInnoSetupWindows和PythonPyInstaller打包Python应用程序为独立的可执行文件安装PyInstallerpypi镜像使用帮助https://mirrors.tuna.tsinghua.edu.cn/help/pypi/pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple

大家好,又见面了,我是你们的朋友全栈君。

原创文|Space9

Python文件打包成可安装、无需Python依赖的高效可执行exe程序

工具及环境

  1. PyInstaller
  2. Inno Setup
  3. Windows和Python

PyInstaller打包Python应用程序为独立的可执行文件

安装PyInstaller

pypi 镜像使用帮助https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

PyInstaller打包python程序

pyinstaller -D -w -i "resources\logo.ico" AudioConverter.py Amusic.py --add-data "resourcesz.dll;." --add-data "resourcesz.exe;." --add-data "resources\aria2c.exe;." --add-data "resources\logo.ico;."

参数解释:
-D 创建一个包含可执行文件的单文件夹捆绑包(不推荐-F单文件形式,原因:单文件每次启动前需要解压操作,会拖慢启动速度
-w 不显示控制台窗口,GUI可视化程序需要此项
-i 指定可执行文件的图标
-n 指定应用程序包的名称(默认值:第一个脚本的名称
–add-data <SRC;DEST or SRC:DEST> 添加资源文件(Windows使用;分号,大多数Unix使用:冒号,注意后面还有一个.点
其他参数可查阅官方文档https://pyinstaller.readthedocs.io/en/stable/
生成文件在dist目录下

兼容性问题

出现运行异常兼容性问题,请尝试PyInstaller开发版本

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz

高速访问GitHub

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple https://git.yumenaka.net/github.com/pyinstaller/pyinstaller/archive/develop.tar.gz

程序64位和32位的问题

  1. 32位程序在64位和32位操作系统下都可以运行,64位程序只能在64位操作系统下运行
  2. 使用32位Python打包32位程序,使用64位Python打包64位程序

Inno Setup制作Windows程序安装包

安装Inno Setup

稳定版下载地址:https://jrsoftware.org/download.php/is.exe
测试版下载地址:https://jrsoftware.org/download.php/is-beta.exe
下载后桌面双击,即可开始安装

安装界面语言支持中文

简体中文语言包下载地址:https://raw.github.com/jrsoftware/issrc/main/Files/Languages/Unofficial/ChineseSimplified.isl
高速访问GitHub:https://cdn.jsdelivr.net/gh/jrsoftware/issrc@main/Files/Languages/Unofficial/ChineseSimplified.isl
其他语言包:https://jrsoftware.org/files/istrans/
下载语言包之后,将语言包文件放入Inno Setup安装目录里的Languages目录中

使用向导生成打包脚本

使用向导生成打包安装程序的脚本,并保存
参考脚本
setup.iss

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "嗖音HOME"
#define MyAppVersion "3.2.0"
#define MyAppPublisher "独居者"
#define MyAppExeName "AudioConverter.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={ 
   { 
   9DB7D8F0-D497-4AD8-A331-D3E74FD2C0DC}
AppName={ 
   #MyAppName}
AppVersion={ 
   #MyAppVersion}
;AppVerName={ 
   #MyAppName} { 
   #MyAppVersion}
AppPublisher={ 
   #MyAppPublisher}
DefaultDirName={ 
   autopf}\{ 
   #MyAppName}
DisableProgramGroupPage=yes
; Remove the following line to run in administrative install mode (install for all users.)
PrivilegesRequired=lowest
OutputDir=.\outfile
OutputBaseFilename=嗖音HOME
SetupIconFile=.\resources\logo.ico
UninstallDisplayIcon=.\resources\logo.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone

[Files]
Source: ".\dist\AudioConverter\AudioConverter.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: ".\dist\AudioConverter\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent [UninstallDelete] Type: files; Name: "{ 
   app}\ffmpeg.exe" Type: filesandordirs; Name: "{ 
   app}\WAV" Type: files; Name: "{ 
   app}\cookie.json"

参数解释:
UninstallDisplayIcon=.\resources\logo.ico 设置卸载程序的图标
Flags: checkablealone 设置创建桌面快捷方式默认勾选状态

卸载删除文件或文件夹
[UninstallDelete]
Type: files; Name: “{app}\ffmpeg.exe”
Type: filesandordirs; Name: “{app}\WAV”

自动化构建脚本

实现的可行性

  1. Inno Setup安装目录的文件可以拷贝到任意地方使用cmd命令行形式进行调用
  2. 按照如图所示目录结构修改相关的脚本路径(绝对路径修改为相对路径
    在这里插入图片描述
  3. 之后就可以直接双击build.bat进行一键打包工作,安装包就会保存在outfile目录

实现步骤描述

  1. 安装pyinstaller和其他第三方依赖包
  2. 执行pyinstaller进行打包
  3. 使用Inno Setup制作安装包

具体实现脚本

build.bat

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

pyinstaller -D -w -i "resources\logo.ico" AudioConverter.py Amusic.py --add-data "resourcesz.dll;." --add-data "resourcesz.exe;." --add-data "resources\aria2c.exe;." --add-data "resources\logo.ico;."

cd Inno Setup 6
iscc "..\setup.iss"

扩展

使用Github管理代码,并通过CI / CD工具轻松实现软件构建的自动化

示例中所用源码

您可以Star和Fork我的项目
https://github.com/space9bug/AudioConverter

本文仅为个人学习使用,不得用于任何商业用途,否则后果自负!如侵犯到您的权益,请及时通知我,我会及时处理。

文尾标记

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149045.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Source Insight 3.5 简介

    Source Insight 3.5 简介SoureInsight3.5

  • 谷歌地球Google Earth打不开的解决办法[通俗易懂]

    谷歌地球Google Earth打不开的解决办法[通俗易懂]从2020年11月20号左右,谷歌地球中国服务器全部关停,所有原来可以使用的hosts,全部不能使用了,导致原来可以在电脑上打开谷歌地球的,现在全部提示无网络,如下图:这个是谷歌地球的最新版,一样打不开:解决办法,尝试了,国内所有的有关谷歌地图的软件。唯一现在可以使用的:BIGEMAP如下图分下下载地址,大家可以安装来试一试,免费可用:http://download.bigemap.com/bmsetup.rar欢迎留言,提供更多谷歌地球的信息…

  • matlab中clc和clear作用_clc,clear

    matlab中clc和clear作用_clc,clearcacl()用法解析可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。以前我们可以使用box-sizing:border-box;来设置盒子的属性为不加上边距。现在我们又多了一个选择了。但要注意,两者只能使用一个哦,否则就会造成冲突了。calc()可以使用数学运算中的简单加(+)、减(-)、乘(*)和除(/)来解决问题,而且还可以根据单位如px,em,rem和百分比来转化计算,但是要注意,使用运算符号的时候要与两边的值有空格和间隙,否

    2022年10月26日
  • 如何关闭vscode git工具[通俗易懂]

    如何关闭VScode工具的git提示只需要关闭用户设置里的Git:Enabled即可;第一步,我们只需要打开”文件->首选项->设置”第二步,在搜索栏中搜索git:Enabled,关闭即可;…

  • 小程序图片和视频轮播

    小程序图片和视频轮播index.wxml<swiperclass=”swiper”indicator-dots=”true”autoplay=”{{flag}}”interval=”5000″duration=”1000″><blockwx:for=”{{movies}}”wx:for-index=”index”>&…

  • 智慧小区智能物业管理系统综合解决方案_智能小区管理系统

    智慧小区智能物业管理系统综合解决方案_智能小区管理系统因为传统的办公方式效率低,工作强度大。人们需耗费大量的时间和精力去手工处理那些繁杂、重复的工作,而手工处理的延时和差错,正是现代化管理中应该去除的弊端。又由于物业管理企业的启动基金不足,多种经营服务不善等,导致招不到专业水平高的工作人员,再加上管理手段落后,所以就很难提高物业管理企业的效益。小区管理在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了小区物业的资源。而这些项目在过去手工操作时代,需要手工记录这些事情,不但麻烦琐碎,还经常出现错误,给广大业主带来很不便,正是适应这种社…

    2022年10月18日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号