• 桌面应用“标注器”打包踩坑记


    昨天(2018/4/6)花了几乎一天的时间打包我的桌面应用“标注器”。下午3点完成最后的编写之后,准备在女朋友雅喻的电脑上配环境打包(我的电脑不能用pyinstaller打包,重装也不行,玄学错误。)。雅喻的电脑上缺少scikit-image这个包,然后我就下了一个。但是主程序不能运行,报错,traceback最后一行具体说的是str变量没有read()属性。我以为是包有问题(怀疑是PIL),所以还是去张辽电脑上打包。因为上次我在他电脑上打包成功了。

    一顿操作之后,我选择的打包为单个路径而不是单个文件(为了执行能快一点),但是提示错误:

     
    然后百度,各种骚答案都出来了。试了大概一个小时,到了下午6点,都不行。我尝试着打包一个helloworld级别的pyqt5应用,结果成功了,那么说明这个锅pyqt5不背(当时完全懵逼了,根本不知道哪出错),然后从张辽那拷贝了原始的代码进行打包,结果成功。(一次打包过程接近15分钟,可以说提心吊胆)
    猜测是后面代码优化的时候使用了导致这次错误的包。于是去掉了import skimage的语句,结果打包成功。
    现在说明问题只能出在skimage这个包了。于是新建一个测试文件,将其打包为-c的控制台应用,执行后出现以下错误:
    定位到最后,也就是 ModuleNotFoundError: No module named 'pywt._extensions._cwt' 这个错误。
    百度之后,应该是hiddenimport的解决方法。测试之后应用到“标注器”的打包上,测试成功。
    这个时候已经是晚上10点了。但是在其他电脑上依然有以下问题:
    这就比较好解决了。百度之后是环境变量的问题。设置之后果然点亮成功
     
    今天的经历可谓一波三折,并且浪费了大量的时间。总结起来的话,当时就应该先设置“-c -D”的参数进行打包,方便定位错误。但是这一波操作下来至少也长了很多见识。pyqt5桌面应用的发布,或者说python在Windows系统上的打包发布,的确是个深坑。python也应该有他自己的作用域,下次,我会尽量选择Qt而不是PyQt5进行桌面应用的开发。
     
  • 相关阅读:
    LR常用函数汇总
    常用工具软件包下载地址
    MySQL分表操作的例子
    Redis性能优化之redis.cnf配置参数
    Redis监控之redis-live.conf配置
    Oracle中查询和定位数据库问题的SQL语句
    Oracle种常用性能监控SQL语句
    show processlist使用介绍
    MySQL流程控制和存储过程介绍
    MySQL字符集和排序介绍
  • 原文地址:https://www.cnblogs.com/TQCAI/p/8733532.html
Copyright © 2020-2023  润新知