如何为Python项目创建含Python及依赖自动安装的安装程序?
最优实现方案
一、先补全准确的依赖清单
pipreqs漏抓依赖是常见问题,尤其是标准库或间接依赖,按以下方式修正:
- 手动核对补全:遍历项目所有
.py文件,把所有第三方库(非Python标准库)列出来,比如import cv2对应opencv-python,import numpy对应numpy,直接添加到requirements.txt;像tkinter这类标准库,部分精简版Python可能缺失,可在清单里加tk(pip安装时会自动处理)。 - 用虚拟环境生成干净清单:
- 建虚拟环境:
python -m venv venv - 激活环境:
venv\Scripts\activate(Windows) - 手动安装项目所有必需依赖
- 导出清单:
pip freeze > requirements.txt
这种方式生成的清单没有多余包,绝对准确。
- 建虚拟环境:
二、自动化安装方案(U盘便携版)
方案1:批处理脚本(.bat)—— 零额外工具
把Python安装包、项目文件和批处理脚本放U盘,用户双击即可完成安装:
- U盘文件结构:
U盘根目录/ ├─ python-installer/ │ └─ python-3.10.11-amd64.exe # 下载对应系统的Python离线安装包 ├─ my-project/ │ ├─ main.py │ ├─ requirements.txt │ └─ 所有子文件夹和脚本 └─ install.bat - 编写
install.bat脚本:
如果要离线安装依赖,提前用@echo off chcp 65001 >nul # 解决中文乱码问题 echo 正在安装Python... start /wait python-installer/python-3.10.11-amd64.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0 # /quiet 静默安装;InstallAllUsers=1 全局安装;PrependPath=1 自动加PATH;Include_test=0 跳过测试文件 echo 正在升级pip... python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple echo 正在安装项目依赖... cd my-project pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple echo 安装完成!双击my-project/main.py即可启动项目。 pausepip download -r requirements.txt -d ./deps把依赖包下载到U盘的deps文件夹,然后把pip安装命令改成:pip install -r requirements.txt --no-index --find-links=../deps,无需联网就能安装。
方案2:Inno Setup制作单EXE安装包—— 更专业友好
生成单个EXE文件,用户双击即可完成Python、依赖、项目的全量安装,还能创建桌面快捷方式:
- 下载安装Inno Setup,新建脚本文件
- 核心脚本内容:
[Setup] AppName=我的Python项目 AppVersion=1.0 DefaultDirName={userdocs}/MyPythonProject DefaultGroupName=MyPythonProject OutputDir=U盘根目录 OutputBaseFilename=ProjectInstaller Compression=lzma2/ultra [Files] ; 复制Python安装包到临时目录,安装后自动删除 Source: "python-installer/python-3.10.11-amd64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall ; 复制项目所有文件到安装目录 Source: "my-project\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs [Run] ; 静默安装Python Filename: "{tmp}\python-3.10.11-amd64.exe"; Parameters: "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0"; StatusMsg: "正在安装Python..." ; 升级pip Filename: "python.exe"; Parameters: "-m pip install --upgrade pip"; StatusMsg: "正在升级pip..." ; 安装项目依赖 Filename: "pip.exe"; Parameters: "install -r ""{app}\requirements.txt"""; WorkingDir: "{app}"; StatusMsg: "正在安装项目依赖..." [Icons] ; 创建桌面快捷方式,直接启动main.py Name: "{userdesktop}\启动我的项目"; Filename: "{app}\main.py"; WorkingDir: "{app}" - 点击编译按钮,生成单个EXE文件放U盘,用户双击即可完成所有安装。
内容的提问来源于stack exchange,提问作者new_coder
相关产品推荐
相关产品推荐

