1. 打包Python脚本的目的:
1)封装:能够隐藏Python源码,防止源码泄露
2)使用便利:在没有安装 Python 环境的系统里,也能够运行脚本
2. 打包工具
PyInstaller
是一款强大的第三方工具,其作用是把 Python 脚本打包成独立可执行文件。
其主要特点:
- 跨平台支持:Windows、macOS 和 Linux 等多种操作系统都能使用
- 独立性:打包后的可执行文件不依赖于 Python 解释器和其他外部库,可直接运行
- 简单易用:只需简单的命令就能完成打包操作,且支持多种自定义选项
3. 案例相关的配置
- 操作系统:Windows
- 编程语言:Python
- 虚拟环境:conda
- 打包工具:
PyInstaller
- 代码文件:main.py(已经写好的脚本文件)
4. 打包具体流程
1)打开命令提示符:
# 按下 “Win+R” 组合键,打开运行窗口,在文本框中输入 “cmd”,然后按下 “Enter” 键
2)定位到脚本文件路径(这里使用绝对路径):
cd /d "C:\Users\Administrator" # 将路径替换成脚本文件当前的文件夹
3)Anaconda环境激活:
conda create -n py3117_selenium python=3.11.7
# "py3117_selenium"这是自定义名称
# "python=3.11.7" 是运行的python版本
# 查看python版本的指令:python --version
4)安装PyInstaller工具:
conda install pyinstaller
5)导出打包环境的依赖:(也就是脚本文件用到的模块/库)
pip freeze > requirements.txt #导出打包环境的依赖
pip install -r requirements.txt #在运行环境中安装相同的依赖
6)导出独立可执行exe文件:
pyinstaller --onefile main.py #最直接简单的打包方式
pyinstaller --onefile --add-data "config.json;." main.py #如果有配置文件的话,一起打包
pyinstaller --onefile --noconsole main.py
#有时候运行exe文件会出现额外的命令行窗口(黑底窗口),使用这个指令就可以
7)有时候打开exe文件时,会报错,比如"No module named 'requests' ",意味着缺少这个库
pip install requests #手动安装requests库