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

PyInstaller打包的Python可执行文件本地正常,同事Win11机器无法运行

问题:PyInstaller打包的EXE在本地Win11正常,同事Win11无法运行

脚本依赖库

import pandas as pd
import xlwings as xw
import win32com.client
from xlwings.utils import rgb_to_int
from xlwings.constants import LookAt
import warnings
warnings.filterwarnings('ignore')
from pandasql import sqldf
import sqlalchemy as sa
import urllib
import pyodbc

打包参数与日志

打包命令

.\pyinstaller --hidden-import pysqlite2 --hidden-import MySQLdb --hidden-import psycopg2 -F 'Script.py'

打包日志

PS C:\Users\USER\PycharmProjects\pythonProject.venv\Scripts> .\pyinstaller --hidden-import pysqlite2 --hidden-import MySQLdb --hidden-import psycopg2 -F 'Script.py'
554 INFO: PyInstaller: 6.8.0, contrib hooks: 2024.7
554 INFO: Python: 3.12.2
586 INFO: Platform: Windows-11-10.0.22621-SP0
601 INFO: Python environment: C:\Users\USER\PycharmProjects\pythonProject.venv
601 INFO: wrote C:\Users\USER\PycharmProjects\pythonProject.venv\Scripts\Script.spec
617 INFO: Module search paths (PYTHONPATH):
['C:\Users\USER\PycharmProjects\pythonProject\.venv\Scripts\pyinstaller.exe',
'C:\Program Files\Python312\python312.zip',
'C:\Program Files\Python312\DLLs',
'C:\Program Files\Python312\Lib',
'C:\Program Files\Python312',
'C:\Users\USER\PycharmProjects\pythonProject\.venv',
'C:\Users\USER\PycharmProjects\pythonProject\.venv\Lib\site-packages',
'C:\Users\USER\PycharmProjects\pythonProject\.venv\Lib\site-packages\win32',
'C:\Users\USER\PycharmProjects\pythonProject\.venv\Lib\site-packages\win32\lib',
'C:\Users\USER\PycharmProjects\pythonProject\.venv\Lib\site-packages\Pythonwin',
'C:\Users\USER\PycharmProjects\pythonProject\.venv\Scripts']
1092 INFO: checking Analysis
1214 INFO: checking PYZ
1328 INFO: checking PKG
1328 INFO: Building because toc changed
1328 INFO: Building PKG (CArchive) Script.pkg
19102 INFO: Building PKG (CArchive) Script.pkg completed successfully.
19102 INFO: Bootloader C:\Users\USER\PycharmProjects\pythonProject.venv\Lib\site-packages\PyInstaller\bootloader\Windows-64bit-intel\run.exe
19102 INFO: checking EXE
19117 INFO: Building because name changed
19117 INFO: Building EXE from EXE-00.toc
19133 INFO: Copying bootloader EXE to C:\Users\USER\PycharmProjects\pythonProject.venv\Scripts\dist\Script.exe
19288 INFO: Copying icon to EXE
19356 INFO: Copying 0 resources to EXE
19356 INFO: Embedding manifest in EXE
19438 INFO: Appending PKG archive to EXE
19482 INFO: Fixing EXE headers
27485 INFO: Building EXE from EXE-00.toc completed successfully.
PS C:\Users\USER\PycharmProjects\pythonProject.venv\Scripts>

排查与解决步骤

1. 捕获具体错误信息

让同事打开命令提示符(CMD),切换到EXE所在目录,直接运行Script.exe,终端会输出闪退的具体原因(比如缺失依赖、路径错误、权限不足),这是定位问题的核心步骤。

2. 补全依赖库的打包配置

针对脚本用到的Windows交互类库,补充PyInstaller的隐藏导入:

  • 重新打包时添加以下参数:
    pyinstaller --clean --hidden-import pysqlite2 --hidden-import MySQLdb --hidden-import psycopg2 --hidden-import xlwings._xlwindows --hidden-import win32com.client.gencache --hidden-import pyodbc -F Script.py
    
  • 或修改生成的Script.spec文件,在hiddenimports列表中补充上述库名,再用pyinstaller Script.spec重新打包。

3. 检查ODBC驱动与系统运行库

  • 如果报错涉及ODBC连接失败,确认同事机器安装了对应数据库的ODBC驱动(比如SQL Server Native Client、MySQL ODBC驱动),且驱动位数与你的系统一致(均为64位)。
  • 如果提示缺失vcruntime140.dll等系统DLL,让同事安装Visual C++ Redistributable 2022(适配Python 3.12的版本)。

4. 修正共享路径问题

  • 把脚本中硬编码的映射盘符(如Z:\file.xlsx)替换为UNC路径(如\\server\share\file.xlsx),避免不同机器盘符映射不一致的问题。
  • 让同事手动访问该UNC路径,确认能正常打开Excel文件且具备读写权限。

5. 尝试非单文件打包模式

去掉-F参数,打包为目录模式:

pyinstaller --clean --hidden-import pysqlite2 --hidden-import MySQLdb --hidden-import psycopg2 --hidden-import xlwings._xlwindows --hidden-import win32com.client.gencache Script.py

将整个打包后的文件夹发给同事运行,单文件模式的临时解压机制可能引发权限或文件缺失问题,目录模式更稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 16:44:59