码迷,mamicode.com
首页 > 其他好文 > 详细

pyinstaller打包pyqt文件

时间:2015-01-08 19:25:06      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:

如何将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提示),(uYES),QtGui.QMessageBox.Yes)
            else:
                QtGui.QMessageBox.information(self, (u提示),(uNO),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文件

标签:

原文地址:http://www.cnblogs.com/dzb3688/p/4211390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!