py2exe运行报PylibUty、_posixshmem等模块缺失该如何解决
py2exe模块缺失问题解决方案
本地包PyLibUty找不到问题
py2exe打包时不会读取你业务代码里动态添加的sys.path路径,需要在打包脚本中显式配置:
- 编辑你的
setup.py,先把本地包路径加入系统路径:
import sys sys.path.append("C:/Dati/workspaces/PythonEclipse/APyLibUty")
- 在
setup函数的py2exe配置项中添加packages参数,强制打包该本地包:
setup( options={ "py2exe": { "packages": ["PyLibUty"] } }, # 你的其他配置项 )
uuid模块缺失问题
uuid属于Python官方标准库,py2exe漏识别时直接在py2exe配置的includes参数里显式添加即可:
"py2exe": { "includes": ["uuid"], "packages": ["PyLibUty"] }
_posixshmem、resource模块找不到问题
这两个是Linux/Unix系统专属模块,Windows系统下没有对应实现,也无需安装,你遇到的报错是py2exe误将跨平台兼容代码里的可选导入识别为必需依赖,直接在excludes参数里排除这两个模块即可:
"py2exe": { "includes": ["uuid"], "packages": ["PyLibUty"], "excludes": ["_posixshmem", "resource"] }
完成以上配置后重新执行打包命令即可解决全部报错。
内容的提问来源于stack exchange,提问作者Massimo Manca
相关产品推荐
相关产品推荐

