`
jeffreydan
  • 浏览: 27125 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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下。

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

1
0
分享到:
评论

相关推荐

    pygtk2+python27_win32.rar

    6. `Python使用Pygtk和Py2exe打包遇到的问题 - CleverDeng - 博客园.pdf`:这是一篇关于使用 PyGTK 和 Py2exe 过程中可能遇到的问题及其解决方法的文档,对实际操作非常有指导价值。 综合以上信息,这个压缩包提供...

    Python使用py2exe打包程序介绍

    一、简介 py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的...从http://prdownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的 installer,这将安装py2exe和

    py2exe使用方法超详细解析(有截图)1

    Py2exe是一个Python模块,用于将Python脚本转换为Windows平台下的可执行程序,使得用户无需安装Python环境即可运行这些程序。它支持多种Python库,包括wxPython, Tkinter, Pmw, PyGTK, pygame, win32com客户端和...

    py2.7+gtk组合安装版

    "py2.7+gtk组合安装版"指的是将Python 2.7与GTK库一起安装的打包版本,确保开发者能够在Python 2.7环境下顺利使用GTK库。"先装python,再装gtk"的提示意味着安装过程应该遵循特定的顺序:首先安装Python解释器,然后...

    python(1).docx

    - **程序打包**:`py2exe`和`cx_Freeze`等工具将Python程序打包成可执行文件。 4. **Web开发**: - **HTTP协议**:`http`库处理HTTP请求和响应。 - **Web Server**:`http.server`(Python 3)或`...

    一些有用的Python函式庫列表.doc

    - **py2exe**和**PyInstaller**: 用于将Python程序打包成可执行文件的工具,py2exe仅适用于Windows。 这些库极大地扩展了Python的功能,使得开发者能够更高效地进行各种类型的应用开发。无论是构建用户界面、开发...

    Python界面程序开发应用技术.zip

    了解使用py2exe、PyInstaller等工具进行打包的方法很有价值。 以上只是Python界面程序开发的一些基础和进阶知识点,实际开发过程中还需要根据具体需求和项目规模,灵活运用和扩展这些知识。通过不断实践和学习,你...

    Python库 | plib3.ui-0.12.1.tar.gz

    1. **setup.py**:这是Python项目的核心配置文件,它定义了项目的基本信息,如版本号、作者、依赖库等,并负责项目的安装和打包。 2. **README**:通常为README.md或README.rst文件,包含项目简介、使用方法、安装...

    使用 Python 开发 Windows桌面程序-综合文档

    5. 发布与部署:使用安装包制作工具(如Inno Setup、py2exe、cx_Freeze等)将Python程序打包为可执行文件,方便用户安装和使用。 总的来说,Python为Windows桌面程序开发提供了多样化的选择,无论是初学者还是经验...

    PyPI 官网下载 | mmgui-0.0.1.tar.gz

    GUI库通常使用像Tkinter、wxPython、Qt或PyGTK这样的框架,帮助Python开发者创建桌面应用。不过,具体 `mmgui` 库提供了哪些功能,需要查看库的文档或者源代码来了解。 总之,`mmgui-0.0.1.tar.gz` 是一个从PyPI...

    PyPI 官网下载 | wheeler.pygtkhelpers-0.13.post13.zip

    2. **LICENSE**:包含该项目的授权协议,告知用户如何合法地使用、修改和分发这个库。 3. **README**:通常为README.md或README.rst,包含项目介绍、使用说明、安装指南和可能的贡献信息。 4. **源代码**:包含...

    Ubuntu应用程序快速开发(以编写单片机串口助手软件为例)归纳.pdf

    - **Quickly工作流程**:Quickly使用pygtk、gedit和glade等工具,创建项目后,可以进行界面设计、编写代码、调试应用,并最终打包成DEB安装包。 通过以上步骤,您可以开发出一个基础的串口助手软件,用于与单片机...

    Ubuntu应用程序快速开发(以编写单片机串口助手软件为例).pdf

    3. **代码编辑与GUI设计**:Quickly集成了代码编辑和GUI设计工具,开发者可以通过glade图形化界面设计界面,然后使用pygtk将设计转换为Python代码。 4. **运行与调试**:使用`quickly run`命令运行项目,`quickly ...

    Gnome Lights-开源

    PyGTK是一个用于创建图形用户界面(GUI)的Python绑定,它允许开发者使用GTK+工具包来设计和构建跨平台的应用程序。而PyGNOME是PyGTK的一个扩展,提供了对GNOME桌面环境的各种组件和服务的访问,使开发者能够更容易...

    Gabasa-开源

    5. **构建脚本**:如setup.py或Makefile,用于编译、打包和安装软件的自动化过程。 6. **测试套件**:可能包含单元测试或集成测试,用于验证软件功能的正确性,确保新改动不会破坏现有功能。 Gabasa的实现原理可能...

Global site tag (gtag.js) - Google Analytics