如何解决PyInstaller打包时出现ModuleNotFoundError: No module named 'pymysql'错误
以下是几个针对性的解决方法,按顺序尝试:
手动指定隐藏导入模块
打包时直接告诉PyInstaller要包含pymysql,用这条命令:pyinstaller --hidden-import=pymysql your_main_script.py--hidden-import参数用于强制加入PyInstaller自动检测遗漏的模块,这是最常见的解决手段。确认打包环境与运行环境一致
如果你用了虚拟环境,必须先激活对应环境再执行打包命令:
Windows下:venv\Scripts\activate
macOS/Linux下:source venv/bin/activate
激活后再安装PyInstaller(如果没装的话),然后执行打包命令,确保PyInstaller读取的是PyCharm中用的那个环境里的pymysql。通过.spec文件添加模块
先生成.spec配置文件:pyinstaller your_main_script.py
打开生成的.spec文件,找到hiddenimports字段,把pymysql加进去:hiddenimports=['pymysql'],保存后,用这个.spec文件重新打包:
pyinstaller your_main_script.spec检查pymysql安装路径(极端情况)
如果上面的方法都没用,可能是pymysql的安装路径不在PyInstaller的搜索范围内,可以手动指定路径:pyinstaller --paths="你的pymysql安装路径" your_main_script.py
你可以在PyCharm的终端里用pip show pymysql查看安装路径。
内容的提问来源于stack exchange,提问作者Christopher Imana

