下面描述几个我在使用pyinstaller工具,生成exe文件遇到的坑,及解决方案。
一、路径中存在中文。
1、错误信息:
2、原因:exe程序的路径中存在中文。如:
二、找不到模块(module)
1、错误信息:
2、原因分析:
我的python程序是在pycharm中写的,在pycharm中,我创建的工程名称是PS_HY,python主程序是main.py,其他的py文件全部是各个网站的采集模块。
在用pycharm写程序及调试时,模块的调用是通过这种方式:
from 工程名.模块文件名 import 模块类名
注意这个时候,模块我是全放在跟main.py文件同一目录下的。但是以同样的目录结构,去生成exe文件时,就会出现no module的错误。
解决办法是:在准备将py文件生成exe时,在main.py的目录中,创建一个与工程名同名的文件夹,将所引用的模块文件,全部放入此文件夹中,然后再生成exe程序。
注意生成exe的命令格式,如:
pyinstaller -F main.py -p PS_HY\growatt.py -p PS_HY\kstar.py -p PS_HY\MGMTigen.py -p PS_HY\MGMTshine.py -p PS_HY\sanJing.py -p PS_HY\data\psData.py -p PS_HY\data\userData.py
三、生成的exe文件在自己电脑上运行正常,在别人电脑上不正常。
1、错误信息:
(此项没有截图,好像错误信息种类挺多的,依照解决)
2、原因分析:
一般我们自己的电脑在写python程序之间,会配置各种各样的程序环境支持库,NET.、C++等等,而要使用我们发布的exe程序的用户,他们可能从未接触编程,可能只是普通办公电脑,从未添加这些库,而想要找到他们缺少的是哪个dll文件,更是麻烦,这个时候我们只需要一个软件搞定。点击下载,当安装时出现NET.Frame版本错误时,可安装第二个文件后再尝试,点击下载第二个软件。
暂时我就遇到了这三方面的问题,还有一个不单独分析了,是在使用验证码识别模块的时候,需要将【tessdata】文件夹复制到与main.exe同目录下,才能正常运行。
大家还有其他方面的问题,欢迎一起讨论。