python打包

python支持多种打包方式

准备

执行如下命令把相关依赖都导出

python 复制代码
pip froze > requirements.txt

mac/win

可以打成.exe 可执行文件

首先导入依赖

python 复制代码
pip install pyinstaller
  1. 多个文件打包
python 复制代码
 pyinstaller -D run.py

其中 run.py 是你的启动文件

执行完后会生成一个 dist 的文件夹 ,里面有run.exe ;

run.exe 还有一个同级目录,里面是项目的一些依赖

  1. 单个文件打包
python 复制代码
 pyinstaller -F run.py

执行完后会生成一个 dist 的文件夹 ,里面只有run.exe ,没有其他依赖;

它其实是把相关的依赖都压缩起来了,你执行的时候会把这些依赖解压在一个临时目录下执行;

但是这里有一个坑,如果你项目需要读配置,比如.evn 它是没办法处理好的;

读取配置

读取配置的打包方式用多个文件,并且把配置放到.exe 同级目录

python 复制代码
 pyinstaller -D run.py

闪退

如果打出的.exe 文件双击就闪退,可以先打开一个终端,把它扔进终端再执行,这样就不会闪退,可以看到错误信息

SPEC文件

如果遇到动态加载模块,或者文件配置需要修改SPEC 文件,修改后不能再用 pyinstaller -D run.py 打包,因为会覆盖SPEC 文件

这个时候需要用到如下

python 复制代码
pyinstaller -D run.spec

SPEC 文件预览

python 复制代码
a = Analysis(
    ['run.py'],
    pathex=[],
    binaries=[],
    datas=[('app/static', 'app/static')],
    hiddenimports=['uvicorn.logging', 'uvicorn.loops.auto', 'uvicorn.protocols.http.auto', 'uvicorn.protocols.websockets.auto', 'uvicorn.lifespan.on'],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)
相关推荐
昵称画1 小时前
交接班记录电子化:三班之间的信息不漏
开发语言·数据库·人工智能·低代码·php
“AI国潮设计-小江”1 小时前
【AIGC实战】Python+SDXL批量生成“潮汕英歌舞不倒翁”IP | 角色一致性与多场景融合方案,附完整代码
开发语言·人工智能·python·prompt·aigc
传奇开心果编程2 小时前
【Rust入门练中学】第6课:结构体与方法
开发语言·rust·结构体·编程语言理论·结构体方法·编程通用语言
Linux_cy2 小时前
服务器管理工具哪个好用?我用了七八个
运维·服务器·javascript·python·ssh·面板·gmssh
MoRanzhi12032 小时前
第6篇(下)· 使用 PyQt5 实现 2048 高性能计算版:统一运行控制与跨模式安全交接
python·pyqt·进程管理·状态机·软件架构·并发控制·数据一致性
code tsunami2 小时前
【无标题】
开发语言·python
CodeGL2 小时前
10、Python基础之进程和线程
开发语言·python
TechWayfarer3 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php
2601_967980114 小时前
Python列表操作方法详解
python·数据类型·修改·列表操作·功能汇总
卡卡~~5 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法