You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包Python为EXE后无法在新电脑运行的解决方案咨询

解决方案

问题根源

你通过subprocess调用的uvicorn.exe是Conda环境中的启动器脚本,它硬编码了开发机A的Python路径(C:\testpyinsatller\python.exe),目标机B不存在该路径,导致启动失败。直接打包外部exe无法脱离原环境依赖,必须将uvicorn和FastAPI的逻辑整合到主程序中,让PyInstaller一次性打包所有依赖。

步骤1:修改主脚本代码

替换testpyinstallermain.py中的subprocess调用,直接用uvicorn的API启动服务:

import uvicorn
from example import app

if __name__ == '__main__':
    print('启动FastAPI服务...')
    uvicorn.run(app, host='127.0.0.1', port=8000, log_level='info')

步骤2:执行PyInstaller打包命令

在Conda环境的Scripts目录下运行以下命令,PyInstaller会自动扫描并打包所有依赖,无需手动添加外部exe或dll:

Scripts\pyinstaller.exe -D --noconfirm testpyinstallermain.py
  • -D:生成带依赖文件的目录式打包(适合复杂应用,启动速度快);若需单文件可改用-F(生成单个exe,但启动较慢)
  • --noconfirm:覆盖已有打包文件,无需手动确认

步骤3:验证打包结果

  1. 在开发机A中,进入dist\testpyinstallermain目录,运行testpyinstallermain.exe,确认服务正常启动
  2. 将整个testpyinstallermain目录复制到目标机B,直接运行exe即可,无需安装Python、Conda或任何额外依赖

额外优化(可选)

如果打包后出现缺失依赖的警告,可通过--hidden-import手动指定遗漏的子模块:

Scripts\pyinstaller.exe -D --noconfirm --hidden-import="uvicorn.logging" --hidden-import="uvicorn.loops" testpyinstallermain.py

内容的提问来源于stack exchange,提问作者iknow34languages

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:25:17