【问题的根本解决思路】pycharm可以运行但是pyinstaller 打包后运行exe程序出现的“ModuleNotFindError“错误

前段时间用pycharm运行可以正常运行,但是pyinstaller打包成exe文件后发现总是提示

no module named 'objprint'

【问题的根本解决思路】pycharm可以运行但是pyinstaller 打包后运行exe程序出现的“ModuleNotFindError“错误_第1张图片

 为此找了网上找了很多材料,发现都没法解决。可以汇总如下:

一类是常见的打包时的路径可能有问题,需要指定资源包/依赖包获取的路径:

即打包使用的格式为:pyinstaller -F -p <导入的包路径> <你要生成exe文件的名.py>

如:pyinstaller -F -p  d:\programs\python\python38-32\lib\site-packages\   myprogram.py

可以参考文章 解决pyinstaller 打包后运行exe程序出现的"ModuleNotFindError"

另一类是安装资源包/依赖包

用pycharm打开工程,菜单->setting->project->project Interpreter,把鼠标点到你想要包含的插件上,隐藏显示的就是所在目录。

安装缺少的moudle资源包/依赖包。

【问题的根本解决思路】pycharm可以运行但是pyinstaller 打包后运行exe程序出现的“ModuleNotFindError“错误_第2张图片

但是以上操作都没有没有解决我的问题。

通过我排查总结,发现最终的解决办法!!

办法就是自己的疏忽,马虎造成的,所以下面的几句话是关键,请务必看进去:

上述的问题关键是你运行环境调用资源包/依赖包路径和你生成exe文件时调用资源包/依赖包路径不一致!

因此无论你怎么操作前两个方法你都很难找到问题,因为你所认为你的调用资源包/依赖包路径路径本身就是错误的,所以你在错误的路径下找包和调整都是没有用的,因为生成exe文件调用资源包/依赖包路径并不是这个路径。

因此问题就很简单了,要把你pycharm运行时的调用资源包/依赖包路径和生成exe文件调用资源包/依赖包路径置为一致就可以了。

比如我的之前的

pycharm调用资源包/依赖包路径 是E盘下的一个文件夹

生成exe文件调用资源包/依赖包路径 是D盘下的一个文件夹

【问题的根本解决思路】pycharm可以运行但是pyinstaller 打包后运行exe程序出现的“ModuleNotFindError“错误_第3张图片

所以要改成一样的 

【问题的根本解决思路】pycharm可以运行但是pyinstaller 打包后运行exe程序出现的“ModuleNotFindError“错误_第4张图片

 改成一致后,你会发现你运行是和你生成exe文件执行是报错是一样的错误,这时候把需要的包再此路径安装后(用pycharm打开工程,菜单->setting->project->project Interpreter,安装缺少的moudle资源包/依赖包。),解决所有包的问题后,再次运行发现问题解决。这时候再生成exe文件,发现就可以正常执行了。

至此,上述问题得到根本解决。

你可能感兴趣的:(PYTHON学习,pycharm,ide,python)