pyinstaller

官网

https://pyinstaller.org/en/stable/usage.html

在这里插入图片描述

安装

pip install pyinstaller

在python文件所在路径
pyinstaller -F -w -i 图片名.ico 脚本名.py

-w:打包工作台,就是那个黑色的界面,如果有GUI就要加-w,例子需要在工作台打印就不能加
w是小写
-i:打包成指定图标,不做图标就去掉图片名和-i
2.将exe文件和资源文件放到一起再执行exe文件
./表示当前文件路径

在以下代码后面加上py的文件名

pyinstaller -F 

如果打包fastapi程序注意路径的问题

以下会使用app示例,打包正确

app = FastAPI(title="test")
uvicorn.run(app, host=Config.HOST, port=Config.PORT, reload=False)

以下会查找main.py文件,如果没有就会出现路径报错

app = FastAPI(title="test")
uvicorn.run(app=‘main:app’, host=Config.HOST, port=Config.PORT, reload=False)

打包dll文件

pyinstaller -F --add-binary "download/libs/api-ms-win-core-path-l1-1-0.dll;libs/api-ms-win-core-path-l1-1-0.dll" main.py

–add-binary后面以分号分隔的参数:第一个为dll文件当前存放路径,第二个为打包好exe后,程序从哪里找到这个dll

常用命令

某些库使用动态导入或延迟导入,PyInstaller 的静态分析无法检测到使用以下参数
列举出在脚本代码中看不到的某个导入项,可多次使用

--hidden-import MODULENAME

从指定的包或模块中收集所有的子模块、数据文件和二进制文件。此选项可以多次使用。

--collect-all MODULENAME

构建前清理临时文件

--clean

nuitka

官网

https://github.com/Nuitka/Nuitka

将 Python 代码编译为 C 语言代码,再编译成 exe,运行效率更高

pip install nuitka

打包

python -m nuitka --standalone --onefile main.py
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐