如何把python(.py或.ipynb)文件打包成可运行的.exe文件?

将 Python 程序打包成可执行的 .exe 文件,通常使用工具如 PyInstaller。这是一个常用的 Python 打包工具,可以将 Python 程序打包成独立的可执行文件,即使没有安装 Python 也能运行。

步骤:

1. 安装 PyInstaller

使用 conda 安装 PyInstaller

如果您使用的是 conda 环境,建议通过 conda 安装 PyInstaller:

bash 复制代码
conda install pyinstaller

这是在 conda 环境中进行安装的推荐方法,因为 conda 会自动处理依赖问题并确保兼容性。

用 pip 安装 PyInstaller

如果您使用的是 pip 作为包管理器,则可以使用以下命令安装:

bash 复制代码
pip install pyinstaller

这是在标准 Python 环境(非 conda 环境)中常用的方法。如果您没有使用 conda,pip 安装也是常见选择。

2. 进入你的项目目录

假设你已经将你的 Python 脚本(例如:main.pymain.ipynb)保存到某个目录中。使用命令行或终端进入这个目录:

bash 复制代码
cd path_to_your_python_script_directory

3. 使用 PyInstaller 打包为 EXE 文件

(1)处理 .py 文件的打包

如果你的 Python 文件已经是 .py 格式,直接使用 PyInstaller 打包即可。

bash 复制代码
pyinstaller --onefile --windowed main.py

如果您想给生成的 .exe 文件添加图标,可以使用 --icon 选项:

bash 复制代码
pyinstaller --onefile --windowed --icon=youricon.ico main.py

说明:

  • --onefile:生成单个可执行文件。
  • --windowed(或 -w):用于 Windows GUI 程序,这样生成的可执行文件在运行时不会弹出控制台窗口(适用于 GUI 应用,如 tkinter 程序)。
  • main.py:是你 Python 脚本的文件名,确保你把它替换成你的脚本名。
  • --icon=youricon.ico:为生成的 .exe 文件设置自定义图标。youricon.ico 是图标文件的路径,你可以替换成你希望使用的图标文件的路径。如果不加这个选项,则生成的 .exe 文件会使用默认图标。请确保图标是.ico格式
    其他可用的参数:
  • --clean:清除先前构建的临时文件(即清除 PyInstaller 构建缓存和临时文件夹)。(如果你想手动删除构建痕迹,也可以删除 PyInstaller 生成的 build/ 和 dist/ 目录,以及 .spec 文件)
  • --add-data: 将额外的文件或文件夹打包进可执行文件。
    例如:pyinstaller --add-data "path/to/datafile;./datafile" script.py
  • --key: 使用加密密钥对源代码进行加密,防止反编译。
    例如:pyinstaller --key "secretpassword" --onefile script.py
    PyInstaller 从 v6.0 开始已经移除了字节码加密功能,即 --key=xxx 参数不再被支持。

(2)处理 .ipynb 文件的打包

Jupyter Notebook (.ipynb) 文件无法直接使用 PyInstaller 打包成 .exe,你需要将 .ipynb 文件转换为 .py 文件后再进行打包。

  • 使用 Jupyter Notebook 提供的 nbconvert 工具:
bash 复制代码
jupyter nbconvert --to script main.ipynb

这会在同目录下生成一个 main.py 文件。

然后使用(1)中的步骤即可。

  • 或者你也可以使用Jupyter Notebook 的 GUI将.ipynb 文件导出为 .py 文件
    • 打开 Jupyter Notebook。
    • 在主页导航到你要转换的 .ipynb 文件所在的目录。
    • 点击文件打开 .ipynb 文件。
    • 在页面顶部的菜单栏中,选择 File(文件) -> Download as(另存为) -> Python (.py)。
    • Jupyter Notebook 会自动将 .ipynb 文件转换为 .py 文件并下载到你的本地。
  • 如果你是使用的vscode的jupyter插件,那也可以用GUI导出
    ctrl+shift+P弹出命令栏,输入导出

4. 查找生成的 EXE 文件

打包完成后,PyInstaller 会在你的项目目录下创建一个 dist 文件夹,里面会有一个单独的 .exe 文件,例如:main.exe。你可以直接运行该文件,程序会以独立的应用程序形式启动。

例子:

假设你的 Python 脚本是 main.py,你可以这样运行:

bash 复制代码
pyinstaller --onefile --windowed main.py

PyInstaller 会在你的目录下创建如下的文件夹结构:

css 复制代码
your_project/
    ├── build/
    ├── dist/
    │   └── main.exe   <-- 这是可执行文件
    └── main.spec

main.exe 就是你打包好的可执行文件。

5. 打包后的依赖问题

在某些情况下,打包后的可执行文件可能仍然依赖某些动态链接库或系统文件。如果你发现生成的 exe 文件在其他电脑上运行时缺少某些文件,可以考虑将程序打包成 --onedir 格式,并将整个目录一起分发。此命令如下:

bash 复制代码
pyinstaller --onedir --windowed main.py

这将生成一个包含所有依赖文件的目录,用户可以通过点击该目录中的 main.exe 文件来启动程序。

6. 使用 .spec 文件自定义打包(可选)

PyInstaller 会生成一个 .spec 文件,供你自定义打包过程。你可以在生成的 .spec 文件中修改打包的行为,然后再次使用 .spec 文件打包:

bash 复制代码
pyinstaller your_spec_file.spec
相关推荐
拾伍廿肆几秒前
Django 中间件
后端·python·中间件·django
十五年专注C++开发6 分钟前
QT开发模式(一):界面和业务逻辑分离
开发语言·c++·qt
Eric.Lee202120 分钟前
数据集-目标检测系列-自行车检测数据集 bike>> DataBall
人工智能·python·深度学习·目标检测·数据集·物体检测·自行车检测数据集
山语山23 分钟前
机器学习与深度学习
前端·人工智能·python·深度学习·机器学习·机器人
TuringSnowy41 分钟前
用矩阵和统计报告估计polynomial线性回归的系数python
笔记·python
huanxiangcoco41 分钟前
240. 搜索二维矩阵 II
python·leetcode·矩阵
LDG_AGI1 小时前
【人工智能】Transformers之Pipeline(十九):文生文(text2text-generation)
人工智能·python·算法·机器学习·视觉检测·aigc·机器翻译
懷淰メ1 小时前
PyQt5实现植物大战僵尸游戏 包含几十种植物、僵尸 欢迎体验!(附下载地址)
开发语言·python·qt·游戏·pyqt·植物大战僵尸·pvz
程序猿老樊1 小时前
async函数的多种使用形式
开发语言·前端·javascript
青年夏日科技工作者1 小时前
科大讯飞智能体Python SDK接入流程
开发语言·python