一、按照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博客

Python调用ddddocr打包不成功或打开后报错ddddocr\common.onnx failed. File doesn‘t exist解决办法 - Halo3224 - 博客园 (cnblogs.com)

py文件包含ddddocr包打包后exe程序无法使用ddddocr问题解决_窝狸犸的博客-CSDN博客

windows环境:Label-Studio X SAM 半自动化标注:‘numpy._DTypeMeta‘ object is not subscriptable_不爱学习的刘叫兽的博客-CSDN博客

Pyinstaller 打包exe遇到的各种问题及解决思路(详细) - 丢了木剑的温华 - 博客园 (cnblogs.com)

Python之pyinstaller打包exe填坑总结_shy014的博客-CSDN博客

pywinauto常见问题_pywinauto找不到控件-CSDN博客