Python 3.11.3适配PyInstaller版本及安装运行故障求助
PyInstaller与Python 3.11.3、Poetry兼容问题解决指南
错误解释
1. Poetry版本解析失败报错
核心原因并非最新版PyInstaller不支持Python 3.11.3,而是版本范围冲突:
- 项目的Python约束为
^3.11(即>=3.11,<4.0),包含了Python 3.12及以上版本 - 最新PyInstaller(5.12.0)的支持范围是
>=3.7,<3.12,无法适配3.12+版本 - Poetry的版本校验逻辑认为,当项目Python版本升级到3.12时PyInstaller会失效,因此拒绝完成安装
2. PyInstaller 4.5.1运行时KeyError: 'CALL_FUNCTION'
核心原因是版本不兼容:
- Python 3.10及之后版本对字节码指令做了调整,移除了
CALL_FUNCTION指令,拆分出更细分的指令类型 - PyInstaller 4.5.1是2021年的旧版本,完全不支持Python 3.11的新字节码结构,因此触发该报错
解决方案
方案1:缩小项目Python版本范围(推荐)
修改pyproject.toml中的Python约束,明确限制在3.11系列:
[tool.poetry.dependencies] python = ">=3.11,<3.12"
执行命令安装最新兼容的PyInstaller:
poetry add pyinstaller
方案2:直接指定兼容Python 3.11的PyInstaller版本
无需修改项目Python约束,直接安装支持3.11的PyInstaller 5.x版本(如5.13.0及以上的5.x版本):
poetry add pyinstaller==5.13.0
额外注意
你的pyproject.toml中存在pyinstall = "^0.1.4",这是笔误,正确包名为pyinstaller,建议删除该行避免依赖混淆。
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

