python工程打包为一个可执行的exe文件

文章目录


背景

打包一个Python工程为一个可执行的exe文件,效果是:打包完成之后,这个exe文件在没有python环境的电脑也能运行,不需要安装额外的环境


步骤

安装 PyInstaller

需要安装 PyInstaller。可以使用 pip 来安装:

bash 复制代码
pip install pyinstaller

打包python脚本

代码如下(示例):

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

其中:

--icon=<icon_path>:为可执行文件指定一个图标。

--onefile:将所有文件打包成一个独立的可执行文件

生成的文件

PyInstaller 会生成一个 dist 目录,里面包含 main.exe 文件。你可以将这个 main.exe 文件复制到没有 Python 环境的电脑上运行。

只需要复制那个main.exe即可

特殊情况

PyInstaller 会自动检测并包含大部分依赖包,但有时需要手动处理一些特殊的依赖。你可以通过 --hidden-import 选项来手动指定需要的模块。

bash 复制代码
pyinstaller --onefile --hidden-import <module_name> main.py

示例

假设你的 Python 工程结构如下:

python 复制代码
my_project/
│
├── main.py
├── module1.py
└── module2.py

在 my_project 目录下运行:

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

这将在 dist 目录下生成一个 main.exe 文件。

相关推荐
Gofarlic_oms12 小时前
利用API实现ANSYS许可证管理自动化集成
运维·服务器·开发语言·matlab·自动化·负载均衡
AI+程序员在路上3 小时前
VS Code 完全使用指南:下载、安装、核心功能与 内置AI 编程助手实战
开发语言·人工智能·windows·开源
invicinble3 小时前
这里对java的知识体系做一个全域的介绍
java·开发语言·python
catchadmin3 小时前
使用 PHP TrueAsync 改造 Laravel 协程异步化的可行路径
开发语言·php·laravel
wbs_scy4 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·开发语言
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题】【Java基础篇】第15题:JDK1.7中HashMap扩容为什么会发生死循环?如何解决
java·开发语言·数据结构·后端·面试·哈希算法
m0_674294644 小时前
如何编写SQL存储过程性能对比_记录执行时间评估优化效果
jvm·数据库·python
运气好好的5 小时前
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQL
jvm·数据库·python
郑州光合科技余经理5 小时前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
2401_871492856 小时前
Layui如何修改Layui默认的UI主题颜色(换肤功能实现)
jvm·数据库·python