本文适用于用 Pyhton 开发的单文件小程序,特别建议配合 Trae 使用。
一、安装 PYTHON 环境
推荐安装 python-3.8.10,下载地址:
https://www.python.org/ftp/python/3.8.10/python-3.8.10.exe
这是32位的版本,兼容性好。
二、创建虚拟环境
进入命令提示符,无需管理员权限:
<CMD>
python -m venv myenv # 创建虚拟环境
cmd 进入默认位置是 C:\Users\User,所以创建的虚拟环境目录在 C:\Users\User\myenv,实际上就是一个普通目录。
三、激活虚拟环境
Windows:
<CMD>
myenv\Scripts\activate
Linux/macOS:
<BASH>
source myenv/bin/activate
四、更新 pip 和 pyinstaller
<CMD>
python.exe -m pip install --upgrade pip
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple (这里用了镜像源)
做到这一步可以把 myenv 打个包,下次删掉旧的 myenv 目录,解压缩该包即可,无需再做第二步和第四步,可以直接第三步。
五、运行 py 文件,安装依赖文件
在命令行进入 py 文件所在位置。该位置与 myenv 并无任何关系。
<CMD>
cd C:\Users\User\Desktop\develop\test
如果有 requirements.txt ,直接安装依赖模块
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
没有 requirements.txt ,通过运行程序来识别依赖模块
python main.py
这一步的目的是试探缺少哪些依赖模块,如果遇到类似提示就手工安装相应模块
ModuleNotFoundError: No module named 'pandas'
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
需要注意的是,有的 import 语句写在了函数里,不会在程序刚运行时提示,如 openpyxl,在读取 Excel表格时才提示出错。(建议程序统一在开头 import,而且最好不用 from 的格式)
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
六、用 pyinstaller 打包成单一文件
pyinstaller --clean --onefile --noconsole --hidden-import xlrd main.py
--clean :清理之前的临时文件
--onefile:打包成单一文件,简洁,但运行时会有解压缩的环节(不显示),略微缓慢。
--noconsole:运行时不显示命令行窗口
--hidden-import xlrd:强制打包依赖文件
main.py:要打包的主程序文件
需要注意的是,pyinstaller 会自动打包依赖文件,但可能存在遗漏的情形,如 xlrd 就很常见,需要强制打包。
七、其他
打包完成后会在 main.py 所在目录下生成 build 和 dist 目录,可执行程序在 dist 目录里。
此外 build\main\warn-main.txt 里有打包过程中遇到的一些问题信息,可以用于问题分析。之前说的 xlrd 在没强制打包前能搜索到相关信息,强制打包后就搜索不到了,说明强制打包成功。这个文件内容有很多,但一般没什么影响,只要程序实际运行不出错就行。

5969

被折叠的 条评论
为什么被折叠?



