Kivy/KivyMD应用venv运行正常,打包exe后点击列表项崩溃如何解决
问题解决方法
方案1:修改PyInstaller打包配置(推荐,无需修改第三方包源码)
直接在现有pyinstaller.spec文件中添加scanpy相关资源的打包规则即可,操作步骤如下:
- 执行
pip show scanpy,从输出的Location字段获取scanpy的安装根路径 - 打开项目根目录的
pyinstaller.spec文件,找到datas配置项,新增如下规则(原有资源配置保持不变):
datas = [ # 你原来的其他资源配置 # 新增scanpy资源配置,<scanpy安装路径>替换为上一步获取的实际路径 ("<scanpy安装路径>/scanpy/pyproject.toml", "scanpy"), ("<scanpy安装路径>/scanpy/_dist_init_.py", "scanpy"), ("<scanpy安装路径>/scanpy-*.dist-info", "scanpy.dist-info"), ]
Windows环境下路径分隔符可以用/或者转义后的\\。
- 修改完成后重新执行打包命令:
python -m PyInstaller .\pyinstaller.spec
方案2:修改scanpy源码临时绕过(适合快速测试)
如果仅需临时验证功能,可以直接修改scanpy的源码跳过文件读取逻辑:
- 找到scanpy安装目录下的
_metadata.py文件 - 注释掉原有读取pyproject.toml的代码段,直接硬编码你当前安装的scanpy版本号即可,示例如下:
# 注释掉原来的文件读取逻辑 # from pathlib import Path # __version__ = Path(__file__).parent.joinpath("pyproject.toml").read_text()... # 直接写死对应版本号,比如你安装的是1.9.3版本就写下面这句 __version__ = "1.9.3"
修改完成后重新打包即可。
内容的提问来源于stack exchange,提问作者xie186
相关产品推荐
相关产品推荐

