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:显式声明需导入的模块(如module1module2)‌
  • ‌验证输出‌

  生成的独立可执行文件位于dist/目录,依赖的配置和数据文件会嵌入其中‌


‌三、生成压缩包‌

  • ‌收集输出文件‌

  将dist/main可执行文件与外部依赖(如有)整理至独立目录:

  

  • ‌压缩为归档文件‌

  


‌四、关键注意事项‌

  1. ‌虚拟环境隔离依赖‌
    推荐使用venvconda创建虚拟环境,避免全局依赖污染‌

    python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # 安装项目依赖
  2. ‌路径处理‌

    • 在代码中使用os.path动态获取配置/数据文件的绝对路径,避免打包后路径错误‌1。
    • 示例代码:
      import os config_path = os.path.join(os.path.dirname(__file__), "config/config1.json")
  3. ‌跨平台兼容性‌

    • 若需跨平台分发,需在目标操作系统(如Windows/macOS)中分别执行打包操作‌

‌五、自动化脚本示例‌

创建build.sh脚本实现一键打包:

 

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

 
posted @ 2025-02-27 11:28  冷锋战士  阅读(220)  评论(0)    收藏  举报