您的位置:首页 > 编程语言 > Qt开发

pyqt程序使用py2exe打包时遇到的问题

2007-10-10 14:17 691 查看
最近用pyqt写了些程序,想打包然后发布,使用py2exe时遇到了些问题。

setup.py如下:

# setup.py

from distutils.core import setup

import py2exe

setup(windows=["loadMain.py"])

#用的是GUI

python setup.py py2exe 时会报 找不到qt4 sip等

所以还要加上 -p PyQt4,sip

这样就成功了。

问题:使用qtdesigner产生ui文件后有两种方式使用,1,手动使用继承或直接使用的方式来

添加信号,槽,和调用函数的连接;2,使用uic。

手动的就比较简单了,添加2句话就可以。uic大概是这样:

#!/usr/bin/env python

import sys,os

from PyQt4 import QtCore, QtGui, uic

from xml.etree.cElementTree import parse

class DemoImpl(QtGui.QDialog):

def __init__(self, *args):

QtGui.QWidget.__init__(self, *args)

uic.loadUi("main.ui", self)

self.exefile=""

self.exdir="."

self.paramList=[]

@QtCore.pyqtSignature("")

def on_pushButton_2_clicked(self):

self.exefile=self.setOpenFileName()

self.lineEdit.setText(self.exefile)

问题就出在这里了,使用uic方式时,打包的结果是可以成功的,但运行会报错。

log:Traceback (most recent call last):

File "uicload.py", line 4, in <module>

File "PyQt4"uic"__init__.pyc", line 7, in <module>

File "PyQt4"uic"Compiler"compiler.pyc", line 9, in <module>

File "PyQt4"uic"uiparser.pyc", line 16, in <module>

ImportError: No module named elementtree.ElementTree

根据kde。org riverband,等几个地方解决方案也还是没有找到,看来这个问题得下一个版本才能

解决了。

于是回头我不用uic方式,改用继承写的,打包结果是可以使用的。



这是运行的实例,外观使用的plastique。打包结果会多许多没用的,比如tk,tcl包,都可以删掉的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: