ubuntu系统python工程编译及打包
一、工程结构示例
假设工程目录结构如下:

二、使用PyInstaller打包
- 安装PyInstaller
pip3 install pyinstaller # 安装最新版本:ml-citation{ref="3,5" data="citationList"} - 打包工程文件
使用--add-data参数添加非Python文件(配置文件、数据文件等),路径分隔符在Linux/macOS中使用:
-
--onefile:生成单个可执行文件--add-data "源路径:目标路径":将配置文件/数据文件打包到目标路径(如config/和data/目录)--hidden-import:显式声明需导入的模块(如module1和module2)
- 验证输出
生成的独立可执行文件位于dist/目录,依赖的配置和数据文件会嵌入其中。
三、生成压缩包
- 收集输出文件
将dist/main可执行文件与外部依赖(如有)整理至独立目录:

- 压缩为归档文件

四、关键注意事项
-
虚拟环境隔离依赖
推荐使用venv或conda创建虚拟环境,避免全局依赖污染:python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # 安装项目依赖 -
路径处理
- 在代码中使用
os.path动态获取配置/数据文件的绝对路径,避免打包后路径错误1。 - 示例代码:
import os config_path = os.path.join(os.path.dirname(__file__), "config/config1.json")
- 在代码中使用
-
跨平台兼容性
- 若需跨平台分发,需在目标操作系统(如Windows/macOS)中分别执行打包操作。
五、自动化脚本示例
创建build.sh脚本实现一键打包:

通过上述方法,可实现多文件Python工程的编译、依赖整合及压缩包生成,适用于复杂项目的分发需求

浙公网安备 33010602011771号