python+pyside+py2exe+inno setup 开发图形界面程序

来源:互联网 发布:win7网络里的网络设施 编辑:程序博客网 时间:2024/06/05 14:10
基本思想:
        1 利用pyside开发python版图形界面程序(利用Qt开发图形界面程序)
        2 利用py2exe将python脚本转换成windows上的可独立执行的可执行程序(不需要安装python和Qt)
        3 将exe程序和相关库打包成安装程序。
 
1 pyside
        安装pyside后,~\Python27\Lib\site-packages\PySide目录里,我们可以利用designer.exe这个程序,编辑图形界面。界面如下:
python+pyside+py2exe+inno setup 开发图形界面程序 - 尚武思文 - 尚武思文
        设计好界面后,生成了XXX.ui文件。这时候,我们进入~\Python27\Scripts目录,使用pyside-uic.exe执行如下命令:
pyside-uic E:\user\PycharmProjects\XXX\XXX.ui -o XXX_ui.py
 
我们把XXX_ui.py放在项目里,然后编辑py脚本。例如:
from PySide.QtGui import *
from XXX_ui import Ui_Form

class LoginForm(QDialog):
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.ui= Ui_Form()
        self.ui.setupUi(self)
 
好了,剩下的就是完成你的程序了。
 
2 py2exe
        完成程序开发后,我们现在打算将其转换成windows上的可独立执行的可执行程序(不需要安装python和Qt)。首先需要编写一个setup.py的脚本,代码如下:
from distutils.core import setup
import py2exe

# Set options
options ={ 'py2exe':
    {
        'dll_excludes':['w9xpopen.exe'] #This file is for win9x platform
    }
}

# Setup
setup ( options  = options,
    windows = [{
        'script': 'Logspliter.py', "icon_resources": [(1, "logspliter.ico")]
    }]
)
 
下面我们执行如下命令:
python setup.py py2exe
 
如果顺利的话,会出现如下信息:
python+pyside+py2exe+inno setup 开发图形界面程序 - 尚武思文 - 尚武思文
 
        进入项目目录,我们就会看到dist文件夹和build文件夹,其中dist就是我们需要的真正内容。进入dist文件夹,看看生成的exe是否可以正常运行。如果可以,恭喜你,成功了!我们只需要把dist文件夹发给别人,不管他们的电脑是否安装了python和Qt,你的程序都可以正常使用。不过使用这种方式还是有缺点的,就是哪怕你写个hello world程序,dist文件夹也会很大,一般在20-30M左右。
 
3 inno setup
        最后一步,使用inno setup将dist文件夹打包起来,生成安装文件。这样我们就可以把这个独立的安装文件与他人分享了。
 
        写起来很简单,但是在开发的过程中,还是遇到了很多问题的。
问题1:窗口如何固定大小?
        答:1 设置它的最大大小和最小大小,并且使它们的值相等,都等于当前你设置的窗口尺寸。
                        self.setMinimumSize(X, Y)
                        self.setMaximumSize(X, Y)
               2 使用setFixedSize()。
                        self.setFixedSize(X,Y)
 
问题2:使用python setup.py py2exe,生成可执行文件时,报如下错误:
        from pkg_resources import load_entry_point ImportError: No module named pkg_resources 
        答:百度一下,没找到结果。Google一下,最终在Stackoverflow上找到答案了,其实也简单,应该是python的setuptools安装得有问题,使用如下命令:
                curl http://python-distribute.org/distribute_setup.py | python
        不过,需要说明的是,这是在linux下的命令,翻译一下,就是我们把distribute_setup.py脚本下载下来,使用python执行一下就可以了。


来自为知笔记(Wiz)


0 0
原创粉丝点击