zoukankan      html  css  js  c++  java
  • 桌面应用“标注器”打包踩坑记

    昨天(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进行桌面应用的开发。
     
  • 相关阅读:
    SpringCloud--gateway网关基础入门
    SpringCloud--gateway网关基本介绍
    编程的命名规则
    [java基础知识]java安装步骤
    [java基础]java跨平台的基础知识
    [java基础]计算机基础知识
    外观模式
    适配器模式
    设计模式UML类图基础
    拾取坐标
  • 原文地址:https://www.cnblogs.com/TQCAI/p/8733532.html
Copyright © 2011-2022 走看看