ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> Python教程 >> pyinstaller打包pyqt文件

pyinstaller打包pyqt文件

来源:网络整理     时间:2015-01-08     关键词:

本篇文章主要介绍了"pyinstaller打包pyqt文件",主要涉及到方面的内容,对于Python教程感兴趣的同学可以参考一下: 如何将pyqt生成exe的二进制文件呢,pyinstaller就是这样的工具可以将脚本文件.py 文件转换为编辑后的二进制文件,在进行发布下面说下,如果打包一....

如何将pyqt生成exe的二进制文件呢,pyinstaller就是这样的工具

可以将脚本文件.py 文件转换为编辑后的二进制文件,在进行发布

下面说下,如果打包

一. 安装:

    下载地址:https://github.com/pyinstaller/pyinstaller

    最新版本pyinstaller2.1.1 (2015-01)

    

python setup.py install

  pyinstaller 是有依赖包的,安装之前必须要安装pywin32, 在网上找到对应版本的pywin32.msi

二. 写一个要打包的py文件

    

# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore

class buttonRedrect(QtGui.QWidget):

    def __init__(self):
        super(buttonRedrect, self).__init__()
        self.setWindowTitle('Mouse Event')
        self.setWindowIcon(QtGui.QIcon('QQ.png'))

        self.labels = QtGui.QLabel(u'点我试试!', self)
        self.labels.setGeometry(50, 50, 150, 50)
        self.labels.mouseReleaseEvent = self.events


    def events(self, event):
        ev=event.button()
        if ev== QtCore.Qt.LeftButton:
            OK = QtGui.QMessageBox.information(self, (u'提示'),(u'左键'),QtGui.QMessageBox.Yes , QtGui.QMessageBox.No)
            if OK==QtGui.QMessageBox.Yes:
                QtGui.QMessageBox.information(self, (u'提示'),(u'YES'),QtGui.QMessageBox.Yes)
            else:
                QtGui.QMessageBox.information(self, (u'提示'),(u'NO'),QtGui.QMessageBox.Yes)
        elif ev == QtCore.Qt.RightButton:
            OK = QtGui.QMessageBox.warning(self, (u'提示'),(u'右键'),QtGui.QMessageBox.Yes , QtGui.QMessageBox.No)
        elif ev == QtCore.Qt.MiddleButton:
            OK = QtGui.QMessageBox.question(self, (u'提示'),(u'滚动轴'),QtGui.QMessageBox.Yes , QtGui.QMessageBox.No)




app=QtGui.QApplication(sys.argv)
buttonr=buttonRedrect()
buttonr.show()
sys.exit(app.exec_())

三. 文件打包

   在要打包的同级目录下,新建一个pyinstaller.py, 内容如下

   

#! /usr/bin/env python
#-----------------------------------------------------------------------------
# Copyright (c) 2013, PyInstaller Development Team.
#
# Distributed under the terms of the GNU General Public License with exception
# for distributing bootloader.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
"""
Main command-line interface to PyInstaller.
"""
# from  PyInstaller import  *
import  os

if __name__ == '__main__':
    from PyInstaller.main import run
    opts=['abc.py','-F','-w','--icon=favicon.ico']
    run(opts)

 其中opts是参数,将参数修改成你要的需求

-- 参数说明:

    

-F, --onefile Py代码只有一个文件

-D, --onedir Py代码放在一个目录中(默认是这个)

-K, --tk 包含TCL/TK

-d, --debug 生成debug模式的exe文件

-w, --windowed, --noconsole 窗体exe文件(Windows Only)

-c, --nowindowed, --console 控制台exe文件(Windows Only)

-o DIR, --out=DIR 设置spec文件输出的目录,默认在PyInstaller同目录

--icon=<FILE.ICO> 加入图标(Windows Only)

-v FILE, --version=FILE 加入版本信息文件

将命令行CMD切换切换到当前要打包的目录

   F:\project\pyqt\TEST>

输入命令:

    python pyinstaller.py

等5,6秒pyinstaller的INFO编译完成之后,目录里面就多出两个文件夹 build   和  dist, 其中 dist 里面就是二进制的打包文件

--遇到的问题:

在给打包文件添加icon的时候,报错

  File "C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_-py2.7.egg\PyInstaller\build.py", line 320, in __postinit__
    self.assemble()
  File "C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_-py2.7.egg\PyInstaller\build.py", line 1245, in assemble
    icon.CopyIcons(tmpnm, self.icon)
  File "C:\Python27\lib\site-packages\pyinstaller-2.1.1dev_-py2.7.egg\PyInstaller\utils\icon.py", line 170, in CopyIcons
    hsrc = win32api.LoadLibraryEx(srcpath, 0, LOAD_LIBRARY_AS_DATAFILE)
pywintypes.error: (193, 'LoadLibraryEx', '%1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3')

当时我选择的icon参数是: --icon=favicon.png   

后来把icon格式改为favicon.ico,才可以, 且 icon的参数不能带  " ' "  or  '  "   '

以上就介绍了pyinstaller打包pyqt文件,包括了方面的内容,希望对Python教程有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_104961.html

相关图片

相关文章