Python 生成 Windows 执行档教学 (Pyinstaller, PowerShell)

壹、前言

将 python 程式封装,使用者将更便于使用,而不需担心设定 python 环境
macOS 还好说,系统有附带 python,但 windows 系统下要执行就麻烦了
最近刚好有需求,故对此研究,不料踩到微软精心準备的陷阱,浪费不少时间
因此写下此笔记作为奋战纪录
本文以生成 windows 执行档为前提,着重在环境设定的问题排解
=> 想更好的阅读体验,请到Notion 同篇笔记(排版略有差异)

贰、环境确认

要封装 python 程式,首先环境要正确
感觉很直觉,但实际上坑还蛮深的,陷进去却不知道错在哪
所以请就下面几点检视一下自己的环境 >w<

终端机环境必须是 Windows 系统 (生成 windows 执行档为前提)

❌ WSL (Windows Subsystem Linux)❌ Linux 虚拟机的 Shell❌ macOS 的 Terminal✅ Windows PowerShell✅ CMD (命令提示字元)

pyinstaller 生成的执行档与系统挂勾
因此,若想用 pyinstaller 生成「能在windows系统下执行的执行档」
就必须在 windows 系统中使用 pyinstaller 处理
Shell 与 Terminal 自不用说,因为环境本来就不是 windows
至于 WSL,也就是依附在 Win10 下的 Linux base 附属系统
这个附属系统属于 Linux 系统,用起来会比 PowerShell 顺心,但在此派不上用场
备注:如果打包成品要在 x32 系统执行,那就必须在 x32 系统上打包,反之则不用

Python 来源有限制

❌ Microsoft Store 安装的 python✅ 由 python 官网下载安装的 python

pyinstaller 的 github 页面有提到,使用 Microsoft Store 版本的 python 会导致权限错误
根据实测,使用 Microsoft Store 除了权限错误,还需要解决环境变数问题

参、手把手设定环境

虽说是手把手,但我已先假设你用的是 windows 10

a. 安装 python

已经正常安装与设定的略过
重申一次,不可用 Microsoft Store 安装的 python,这是孔明的陷阱

到 python 官网 下载最新版的 python 安装程式
根据 pyinstaller 的 github 页面,需要 python 3.5-3.8,实测 3.9 也可以运行
执行安装程式,勾选「Add Python x.x to PATH」,执行安装

b. 安装 pyinstaller

开启 PowerShell (不知如何开启,请参照 「陆、附录 在指定目录位置开启 PowerShell」)

安装 pyinstaller

pip install pyinstaller

确认版号,出现版号即表示安装成功

pyinstaller --version

肆、疑难排解

若 pyinstaller 安装成功可显示版号,可跳过此章节

无法辨识 'pyinstaller' 词彙是否为 Cmdlet、函数、指令档或可执行程式的名称

以上错误,可能是因为「python 环境变数未设定成功」,因此找不到已安装的指令。请遵循「陆、附录 设定 python 环境变数」设定

PermissionError: [Errno 13] Permission denied: ...

以上错误,可能是因为「使用 Microsoft Store 安装的 python」请遵循「参、手把手设定环境 a. 安装 python」设定 python

伍、使用 Pyinstaller 打包

终于来到正题了

在要打包的程式目录开启 PowerShell (不知如何开启,请参照 「陆、附录 在指定目录位置开启 PowerShell」)打包
pyinstaller -F <python file>   # 打包成单执行档,适合小档pyinstaller -D <python file>   # 打包成多个文件,适合框架类程式# 备注:有时你会需要用下面的方式执行python -m PyInstaller -F <python file>python -m PyInstaller -D <python file>
现在可以在生成的 dist 资料夹中找到打包的程式

陆、附录

意下属于查找工具,如果已经正常运行,就不需要看啰

在指定目录位置开启 PowerShell

win + e 开启档案总管,选择希望终端开启时的目录位置Shift + 滑鼠右键,开启选单开启 PowerShell

设定 python 环境变数

如果安装时忘记设定环境变数,会导致安装 pyinstaller 后找不到该指令
可以使用 python 安装程式来设定

到 python 官网 下载最新版的 python 安装程式

执行安装程式,勾选「Add Python to environment variable」,执行安装



关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章