pyinstaller打包exe,报错no module named …
一 、解决 no module named .. 报错问题:
解决方法1:更新 pyinstaller 包
pip install --upgrade pyinstaller
解决方法2:将代码里的 from .. import .. 改成 import ..
解决方法3:打包时,使用 –hidden -import 选项,隐式导入缺少的包
pyinstaller -F --hidden-import easygui C:\Users\liujieru\Desktop\要打包的文件.py
解决方法4:将包所在的路径添加到 环境变量 中
二、解决 cmd 窗口闪退问题
可以在 python 脚本最后加一句,input("Press any key to continue!")
三、 pyinstaller 常用参数(pyinstaller使用官方文档)
参数名 | 描述 | 说明 |
---|---|---|
-h | 显示帮助 | 无 |
-v | 显示版本号 | 无 |
–distpath | 生成文件放在哪里 | 默认:当前目录的dist文件夹内 |
-y |
如果dist文件夹内已经存在生成文件, 则不询问用户,直接覆盖 |
默认:询问是否覆盖 |
–clean |
在本次编译开始时, 清空上一次编译生成的各种文件 |
默认:不清除 |
-D | 生成one-folder的程序(默认) | 生成结果是一个目录,各种第三方依赖、资源和exe同时存储在该目录 |
-F | 生成one-file的程序 | 生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内 |
-n | 生成的.exe文件和.spec的文件名 |
默认:用户脚本的名称, 即main.py和main.spec |
-p |
指定额外的import路径, 类似于使用PYTHONPATH |
参见PYTHONPATH |
–hidden-import | 打包额外py库 | pyi在分析过程中,有些import没有正确分析出来,运行时会报import error,这时可以使用该参数 |
-c | 显示命令行窗口 | 与-w相反,默认含有此参数 |
-w | 不显示命令行窗口 | 编写GUI程序时使用此参数有用。 |
-i | 为main.exe指定图标 | pyinstaller -i beauty.ico main.py |
-d | 执行生成的main.exe时,会输出pyi的一些log,有助于查错 | 默认:不输出pyi的log |
来源:jieru_liu