zoukankan      html  css  js  c++  java
  • Python使用Pygtk和Py2exe打包遇到的问题

    最近花了一天的时间使用Pygtk开发了一个下载器Demo,这个小工具也可以认为是在线升级的原始模型,功能很简单,根据配置文件的Url地址下载数据到本地。
    之前一直都没有接触过gtk编程,好在高中时就开始用VB写Winform程序,有事件触发机制编程的基础,因此上手写程序比较顺利,可是在打包部署时却遇到了不少的小麻烦。
    恩,本篇文章不是介绍怎么开发这样的工具,而是介绍以下2个主题:
    一、如何在windows平台下配置gtk开发环境
    二、使用Py2exe打包
    也许您会认为安装软件是很容易的事情,可是我花在这2个主题上的时间比编码实现功能的时间的比例是2:8,也许是我在这2个主题上接触少,研究不够透彻。

    一、如何在windows平台下配置gtk开发环境

    这个环节还是非常容易的,可以从官方网站下载到安装文件,但值得的注意的是:您的Python环境建议使用2.6以下,2.6以上的打包时会出现无法找到module等错误,在
    2.6以上的环境下解决办法没有找到,我是使用Python2.5解决这个问题的。
    1、安装Python2.5(设置PATH)
    2、安装pygtk:
          >> PyCairo
          >> PyGObject
          >> PyGtk
    3、安装gtk+运行时
       将下载的安装包解压后并设置PATH

    以上步骤完成后,我们就可以写个小小的测试程序检验是否成功安装:(以下是在Python命令行模式下)

    >>>import pygtk
    >>>import gtk
    >>>window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    >>>window.show()
    运行以上程序,如果弹出窗口,那说明您的运行环境安装成功,那么我们可以顺利进行第2个主题了。

    二、使用Py2exe打包

    我们知道您开发的程序运行在客户机器上,他们的机器一般是不能直接运行您的程序的。比如客户机器如果没有安装Python运行环境就不能运行使用Python语言编写的程序,
    那么如何让这些机器运行程序呢?我们必须使用Python的打包工具制作成能够运行在没有安装python运行环境的机器上程序。比如这些Py2exePyInstaller
    安装Py2exe
    制作打包配置程序,格式如下:(Setup.py)

    from distutils.core import setup
    import py2exe

    opts
    = {
    "py2exe": {
    "includes": ["pango", "atk", "gobject", "gtk", "cairo", "pangocairo"],
    }
    }

    setup(
    name
    = "Demo",
    description
    = "Demo App",
    version
    = "Demo",
    windows
    = [{"script": "AppName.py","icon_resources": [(1, "*.ico")]}],#Python程序文件和程序Ico
    options=opts
    )
    这时我们可以使用命令将我们使用Python语言编写的程序打包:
    Python Setup.py py2exe

    运行上面的命令后,我们就得到这个文件夹dist、build,其中dist文件夹下的文件就是打包后的程序了,可以独立运行在没有安装Python环境的机器上。
    恩,这是一般程序的打包步骤,但是对本篇文章介绍的主题而言,我们还需要做一些工作,因为gtk有默认的字体和一些运行库,我们需要将gtk安装文件下的(etc,lib)
    文件夹复制到dist文件下。这样我们的程序将可以正常的运行了。

    三、问题总结

    我再使用pygtk和打包的时候,遇到过以下这些问题,并有相应的解决方案,当您在遇到这些问题之时,希望对您有所帮助。

    Q:gtk在Python2.6以上版本时打包出现警告信息或错误信息,导致程序无法运行,是因为版本问题。
    A:可以考虑降低Python的版本,我是这么解决的。

    Q:Py2exe打包后,运行程序无法找到modules或library
    A:在Setup.py安装配置文件中使用includes,将library包含进来

    Q:Py2exe打包后,运行程序出现警告
    A:由于gtk运行时有默认字体等库的使用,因此需要将gtk安装文件的这些文件夹(etc,lib)复制到dist下。

    恩,这些问题都是我在开发这个工具并打包的过程中遇到的,希望对您有帮助,如果您在使用的时候也遇到了一些问题,不妨分享您是怎么解决的。

  • 相关阅读:
    选择排序——Selection Sort
    Android使用AIDL跨进程通信
    Android Gradle Plugin Version和Gradle Version 对应关系
    error: device unauthorized —— android studio 链接不上虚拟机
    Touch事件传递机制 Android
    Activity生命周期
    Error:Could not determine the class-path for interface com.android.builder.model.AndroidProject.
    Error:fatal: Not a git repository (or any of the parent directories): .git
    Installation failed with message...It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.
    Ajax 学习总结
  • 原文地址:https://www.cnblogs.com/cbbukn/p/1877487.html
Copyright © 2011-2022 走看看