PyInstaller打包exe报错ModuleNotFoundError: No module named 'art'
解决PyInstaller打包art模块时的ModuleNotFoundError问题
以下是几种可行的解决办法:
生成并修改.spec文件手动配置依赖
- 先运行命令生成spec配置文件:
pyi-makespec --onefile file.py - 打开生成的
file.spec文件,找到hiddenimports字段,将其修改为包含art模块及子模块的列表:
(可根据你实际使用的art子模块调整,不确定的话直接包含art下所有子模块即可)hiddenimports=['art', 'art.text2art', 'art.ascii_art', 'art.color', 'art.shapes'] - 最后用spec文件重新打包:
pyinstaller file.spec
- 先运行命令生成spec配置文件:
指定模块安装路径打包
先通过pip show art命令查看art模块的安装路径(输出中的Location字段),然后在打包时加上--paths参数指定该路径:pyinstaller --onefile --hidden-import=art --paths="你的art模块安装路径" file.py显式导入子模块触发PyInstaller自动捕获
在你的Python脚本中,除了import art as a,额外显式导入你用到的art子模块,比如:import art as a import art.text2art # 如果你用到了文本转艺术字功能 import art.color # 根据实际使用情况添加对应子模块之后再用原打包命令重新打包,PyInstaller会自动识别这些显式导入的模块并包含进去。
手动复制模块到打包目录
如果以上方法都无效,找到Python环境中site-packages下的art文件夹,将整个文件夹复制到dist目录中与exe文件同级的位置,再运行exe即可。
内容的提问来源于stack exchange,提问作者CubeDude
相关产品推荐
相关产品推荐

