PyQt4及py2exe使用时的一些错误及解决方案

原创 2016年05月31日 10:51:19

昨天尝试使用PyQt4为Caffe测试程序写了一个界面程序,又把这个python程序转换成了.exe.这过程遇到了不少问题,有的已经解决,有的没有解决,还希望高手帮忙。

先贴出我的界面吧,忙了一天看看成果:


一、使用PyQt4开发界面还是很容易的,大的问题遇到了两个一个解决一个未解决。先说没有解决的问题吧,望高手指点

1、我们看到界面有很多相似的地方如第一行,第二行,第五行,第六行,第七行,这几行的功能类似,都是点击选择按钮后从文件对话框中选择一个文件,因此我想写一个通用的槽函数,参数就是QLineEidt,来选择哪个QLineEdit,但是没有成功。我不知道槽函数是否可以携带参数。最终只能为每个按钮单独写一个槽函数了。

2、从QLineEdit中获得字符串是类型是QString,因此我们需要转换成str类型,这个问题也废了我好长时间,还好最后解决了。

总体来说整个过程还是很简单的,网上的资料也很多,大家有问题可以多问问百度,google。

二、py2exe的作用是将python程序编译成.exe程序这样我们可以脱离python环境,直接在windows下运行程序。如何安装py2exe和基本使用我这里就不讲了,给大家几个链接:

安装和使用:http://blog.csdn.net/linda1000/article/details/12909439

py2exe 打包scipy时遇到的问题:http://www.bubuko.com/infodetail-1284747.html

http://stackoverflow.com/questions/20169728/exe-created-with-py2exe-doesnt-work-and-returns-logfile-with-errors

http://blog.csdn.net/agoago_2009/article/details/7292507

1、第一个问题是找不到*****.dll

可以参考这个链接:http://blog.csdn.net/ablo_zhou/article/details/5295750

我是搜索到***.dll后直接复制到了Python下DLLs文件中,不过这样有两个问题,一个是可能所需的dll非常多,那我们复制操作会很繁琐,第二个是我们破坏了DLLs文件的原有结构。我有个想法是把所需的dll文件的路径加入环境变量中,但是我没有尝试。

2、如果解决了第一个问题,一般转换会成功,但是当我们双击.exe是会提示找不到各种模块,这是因为我们没有把相应的模块打包进来,所以需要我们手动添加。这部分我们可以参考第二个链接。


3、提示没有找到data_file,还是可以参考第二个链接。


如果你不知道需要什么模块和dll,那你只能和我一样一次次尝试,看错误提示,添加,再尝试。这个过程可能会很长。

最后贴出我的代码:

from distutils.core import setup
import py2exe
import glob

'''
setup(
    console=['LfwGuiGrid.py'],
     options={
        'py2exe': {
            r'includes': [r'scipy.sparse.csgraph._validation',
                          r'scipy.special._ufuncs_cxx',
                          r'sklearn.utils.lgamma',
                          r"matplotlib.backends",
                          r"matplotlib.backends.backend_tkagg",
                          r"matplotlib.figure",
                          r"matplotlib.pyplot",
                          r"matplotlib.backend_bases"]
            }
    }
)
'''
opts = {
'py2exe':{r'includes':[r'scipy.sparse.csgraph._validation',
                          r'scipy.special._ufuncs_cxx',
                          r'sklearn.utils.lgamma',
                          r"matplotlib.backends",
                          r"matplotlib.backends.backend_tkagg",
                          r"matplotlib.figure",
                          r"matplotlib.pyplot",
                          r"matplotlib.backend_bases",
                          r'matplotlib.backends.backend_qt4agg',
                          r'skimage.io',
                          r'skimage.transform',
                          r'skimage._shared.geometry',
                          r'skimage.filters.rank.core_cy',
                          r'google.protobuf.internal',
                          r'google.protobuf.internal.enum_type_wrapper',
                          r'google.protobuf.descriptor']
    }
}
data_files= [(r'mpl-data',glob.glob(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\*.*')),
#Because matplotlibrc does not have an extension, glob does not findit (at least I think that's why)  
#So add it manually here:  
(r'mpl-data',[r'D:\Anaconda\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']),  
(r'mpl-data\images',glob.glob(r'D:\Anaconda\Lib\site-packages\matplotlib\mpl-data\images\*.*')),
(r'mpl-data\fonts',glob.glob(r'D:\Anaconda\Lib\site-packages\matplotlib\mpl-data\fonts\*.*')),
(r'mpl-data\stylelib',glob.glob(r'D:\Anaconda\Lib\site-packages\matplotlib\mpl-data\stylelib\*.*'))]

setup(console=['LfwGuiGrid.py'],options=opts,data_files=data_files)




版权声明:本文为博主原创文章,未经博主允许不得转载。

windows 下 py2exe 打包程序时遇到的问题及解决办法

    近日为公司写了一个自动更新网站数据的程序,本来是要在我自己的机器上运行的,但是想要可能要将程序部署到其他的机器上,双不能让别人看到程序源码(因为源码里有重要的数据库用户名与密码),所以要打...

【部分转载】PyQt4安装以及个人遇到的问题

qt是c++库,在python中使用这个库就必须要有接口,使用python能够调用C++代码,qt官方选择了sip这个python与qt的接口库。 在pyqt的官网上,http://ww...
  • kelvict
  • kelvict
  • 2014年05月04日 22:06
  • 3386

pyqt 用py2exe打包出错的解决办法

running py2exe creating D:\data\bitbucket\weixin_project\build creating D:\data\bitbucket\weixin_p...

关于pyqt4关闭窗口报错的解决方法

最近在用pyQt4开发应用界面,开发完毕后每次点窗体左上角的X关闭窗体都会显示烦人的如下报错信息,解决方法如下: 重写窗体关闭事件,即可解决。 def closeEvent(s...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

安装Wamp2.5一直提示"计算机中丢失 MSVCR110.dll"解决方案

安装Wamp2.5错误提示如下 解决方案 https://www.microsoft.com/zh-CN/download/details.aspx?id=30679 下载 ...
  • hsd2012
  • hsd2012
  • 2016年02月27日 10:09
  • 962

py2exe ImportError: No module named sip

简单解决方法: c:\Python26\python.exe setup.py py2exe --includes sip   使用pyqt完成窗体界面很方便,但是打包成exe之后会有问题...

py2exe打包生成exe,图标在win7下面不显示解决方案

py2exe打包生成exe,图标在win7下面不显示解决方案

python(py2exe)打包成exe执行文件,vista/win7下icon图标显示问题的解决方案

windows下,在对使用python的编写的程序进行打包时,常用的工具就是py2exe了,该工具只需要一些脚本就看实现将python程序打包成一个exe文件。并且该exe程序的执行不需要系统预先安装...

错误的结果2......VC/bin/cl.exe返回的最终解决方案

转自:http://blog.csdn.net/mdjtf/article/details/5617292 今日心血来潮,看着臃肿的VC2008生成文件突生不满,试行优化。按照前辈们说的把项...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PyQt4及py2exe使用时的一些错误及解决方案
举报原因:
原因补充:

(最多只允许输入30个字)