如何将一个python项目打包成一个.exe软件

Administrator
发布于 2025-07-15 / 0 阅读
0
0

如何将一个python项目打包成一个.exe软件

1.在PyCharm 2024.1 软件中的PowerShell 中尝试激活虚拟环境

PowerShell 中激活 Python 虚拟环境(例如你创建的 myenv)应该使用以下命令:

.\myenv\Scripts\Activate.ps1

注意事项:

  • .\ 表示当前目录;

  • Activate.ps1,不是 activate(这个是 Linux 或 CMD 用的);

  • PowerShell 脚本默认有执行策略限制,如果报权限问题,可以继续看下面👇。


如果遇到权限错误(执行策略限制):

PowerShell 默认可能禁止运行 .ps1 脚本,可以使用以下命令暂时放开权限:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

然后再执行:

.\myenv\Scripts\Activate.ps1

激活成功后,你会看到前缀类似于这样:

(myenv) PS D:\workspace\emotion-recognition>

这样你就可以在虚拟环境里安装和运行依赖了,比如:

pip install flask keras opencv-python

2.如果没有安装虚拟环境

✅【1】确认是否存在虚拟环境文件夹

在 PowerShell 中运行:

Get-ChildItem

看看当前目录下是否有一个叫 myenv 的文件夹(或你当时取的虚拟环境名字)。

如果没有这个文件夹,那你确实还没有创建虚拟环境。


✅【2】如果没创建过虚拟环境,该怎么创建?

先确保你已经安装了 Python,并且 python 命令能用。然后创建虚拟环境:

python -m venv myenv

执行完会生成一个 myenv 文件夹,里面包含 ScriptsLibpyvenv.cfg 等内容。


✅【3】激活虚拟环境(PowerShell 正确方式):

.\myenv\Scripts\Activate.ps1

如果出现权限问题,再运行一次:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

然后再试激活命令。


🧪 检查是否激活成功?

激活后命令行前面会显示虚拟环境名,例如:

(myenv) PS D:\workspace\emotion-recognition>

这样你就在虚拟环境中啦~可以自由地安装项目依赖了:

pip install flask keras opencv-python

3.要在 Python 项目中执行 requirements.txt 文件,也就是安装其中列出的所有依赖包

步骤一:确保虚拟环境已激活

如果你已经创建并激活了虚拟环境(比如叫 myenv),命令行应该长这样:

(myenv) PS D:\workspace\emotion-recognition>

如果还没激活,请运行:

.\myenv\Scripts\Activate.ps1

如果还没创建虚拟环境:

python -m venv myenv
.\myenv\Scripts\Activate.ps1

✅ 步骤二:安装 requirements.txt 中的依赖

运行:

pip install -r requirements.txt

确保你当前在 requirements.txt 文件所在的目录下(比如 D:\workspace\emotion-recognition)。


🧠 小技巧

  • 查看安装过程是否出错;

  • 如果提示某些包版本不兼容,可以尝试升级 pip:

    python -m pip install --upgrade pip

打包的项目的结构

your_project/
├── build/
├── dist/
│   ├── start_http.exe        # 可执行文件
│   ├── lib/                  # 包含依赖的库文件
│   ├── other_files/          # 其他必要的文件
└── start_http.spec           # 配置文件

如果你想为生成的可执行文件设置图标或添加额外的文件(例如配置文件),可以使用 --icon--add-data 选项:

  • --icon=icon.ico:为生成的可执行文件指定图标

  • --add-data "config.json;.":将外部文件(如 config.json)包含到打包的文件中。

4.进行全量打包,避免缺少部份依赖

这样打包,点击exe文件可能会弹出控制台

pyinstaller --onefile --add-data "haarcascade_files\\haarcascade_frontalface_default.xml;haarcascade_files" --add-data "models;models" --add-data "myenv\\Lib\\site-packages\\mediapipe;mediapipe" start_http.py

也可以这样打包

pyinstaller --onefile --noconsole --add-data "haarcascade_files\\haarcascade_frontalface_default.xml;haarcascade_files" --add-data "models;models" --add-data "myenv\\Lib\\site-packages\\mediapipe;mediapipe" start_http.py

然后在文件目录cmd

D:\workspace\emotion-recognition\dist>start_http.exe > log.txt 2>&1

之后可以写一个bat脚本

@echo off
start "" start_http.exe > log.txt 2>&1



评论