一、按照pyinstaller
1、需要手动按照pyinstaller,安装代码
pip install pyinstaller #或 conda install pyinstaller
2 、打开pycharm中的终端(terminal),切换到需要打包的py的目录下。比如我的目录:D:\Work\auto_mes ,切换代码
cd D:\Work\auto_mes
3、输入打包的代码 ,等待运行结束,再dist目录下运行相应的exe
pyinstaller -F run_all.py
二、运行exe可能会报一些错误,以下是我碰到到的错误及相应的解决方案
1、pathlib的错误
解决方法:重新卸载pathlib,代码
pip uninstall pathlib
pip install pathlib
2、找不相应的文件,路径的错误
解决方案:获取exe的路径,再获取到exe的路径来定位相应的文件,比如
a = os.path.dirname(sys.argv[0]) #pycharm 运行时相应的路径 #test_dir = os.path.dirname(sys.argv[0]) + '/case' #打包时的相应路径 test_dir = os.path.dirname(sys.argv[0]) + '/../case/'
3、找不到common.onnx和common_old.onnx
解决方案:在自己的python安装包找到ddddocr的安装包,找到相应的文件common.onnx和common_old.onnx,把这两个文件拷贝到要打包的py的相同目录下,找到生成文件.spec打开,找到datas,然后替换datas=[('./common.onnx','ddddocr'),('./common_old.onnx','ddddocr')], 然后再更新文件.spec
pyinstaller run_all.spec
4
解决方案:点击提示,进入_ _init_ _.py中,找到第 69 行,界面如图所示:
将 68 至 83 行与 numpy 相关的部分使用单引号作为参数,修改后如图所示:
5 找不到相应导入模块,这个需要把导入的模块隐藏起来
pyinstaller -F --hidden-import=base --hidden-import=base.app --hidden-import=page --hidden-import=util.handle_case --hidden-import=page.plan_management_page --hidden-import=page.login_page --hidden-import=base.base_airtest run_all.py
或者生成文件.spec打开,找到Analysis,然后输入相应的需要隐藏的py, 然后再更新文件、
Analysis( ['run_all.py','app.py','base_airtest.py','base_poco.py','base_pyautogui.py','base_pywinauto.py','test_02_主流程_2.py','login_page.py','plan_management_page.py','common.py','globalvar.py','handle_case.py','handle_flie.py','logs.py','setting.py'], pyinstaller run_all.spec
注:非常感谢以下的博主,下面是相应的连接
关于pyinstaller在win10上打包.exe文件的踩坑经历,附解决方法-CSDN博客
Python3.9 DLL load failed while importing _multiarray_umath_mob64ca12f5c08e的技术博客_51CTO博客
python处理spe格式文件 python spec_mob64ca1404ed65的技术博客_51CTO博客
py文件包含ddddocr包打包后exe程序无法使用ddddocr问题解决_窝狸犸的博客-CSDN博客
Pyinstaller 打包exe遇到的各种问题及解决思路(详细) - 丢了木剑的温华 - 博客园 (cnblogs.com)
Python之pyinstaller打包exe填坑总结_shy014的博客-CSDN博客
pywinauto常见问题_pywinauto找不到控件-CSDN博客