我已经多次遇到这个问题了,我把解决的方法记录在这里。以备后续自己查找,也希望对别人有所帮助。
我遇到的现象是:在pycharm中直接运行或者debug,程序可以正常运行。在Terminal中使用pyinstaller命令行打包,也成功,但是打包成功后,运行exe文件会提示缺模块。
先说说在pycharm中使用pyinstaller打包的大体思路。方法一:是在Terminal中使用命令行,比如:pyinstaller .\main.py -F -w,当执行这条命令的时候,pycharm它首先会去系统的环境变量里面找Python解释器。如果你在系统的环境变量里面设置了Python解释器,那么就按这个进行打包,如果你没有设置环境变量,可能运行不了,打包会报错什么的(我没有验证这一点,我是设置了环境变量的。)方法二:使用external tool,给你的工程新建一个环境,并且环境中安装Python解释器,然后把pyinstaller添加到external tool中来打包。这种方法,就跟环境变量没有关系了,但是你必须给你的工程安装新的环境,并且在新的环境中安装pyinstaller和Python解释器。以上描述可能有些细节的错误,但是大体思路是这样的。
方法一:在Terminal中使用命令行打包。
思路:首先,你要给你的工程选择一个Python解释器,并且,这个被选择的Python解释器一定是配置到了你的系统环境变量中。然后把你工程中用到的所有模块,全部安装在这个Python解释器下面。然后运行命令,比如:pyinstaller .\