使用PyInstaller打包Streamlit应用为exe时遇PackageNotFoundError的解决方法
解决Streamlit打包为EXE时的
PackageNotFoundError: No package metadata was found for streamlit错误 方案1:强制收集Streamlit数据文件
PyInstaller可能未正确捕获Streamlit的元数据文件,打包时添加--collect-data参数强制收集,完整命令示例:pyinstaller --onefile --collect-data streamlit your_app.py方案2:修改Streamlit版本文件绕开元数据校验
找到Python环境下的streamlit/version.py文件,将调用importlib_metadata.version("streamlit")的代码替换为硬编码版本号(替换为你实际安装的Streamlit版本):# 原代码 __version__ = importlib_metadata.version("streamlit") # 替换示例(版本号按需修改) __version__ = "1.32.0"修改后重新执行打包命令。
方案3:使用干净虚拟环境打包
- 创建并激活虚拟环境:
python -m venv venv # Windows系统激活 venv\Scripts\activate # macOS/Linux系统激活 source venv/bin/activate - 安装必要依赖:
pip install streamlit pyinstaller - 执行打包命令:
pyinstaller --onefile your_app.py
- 创建并激活虚拟环境:
方案4:升级依赖版本
旧版本的PyInstaller或Streamlit可能存在兼容性问题,先升级再打包:pip install --upgrade pyinstaller streamlit
内容的提问来源于stack exchange,提问作者SANKALP SHRIVASTAVA
相关产品推荐
相关产品推荐

