zoukankan      html  css  js  c++  java
  • python打包exe pyinstaller 简单使用

    源由

    最近公司让做了一个小工具,使用python写的,写完之后要求能放在其它电脑上运行,于是就开始寻找方案;
    按网上的说法 py2exe已经很久没更新了,资料也不多;
    于是就采用pyinstaller来生成exe程序;

    环境

    pyintaller 正式版 支持2.7及3.3-3.5的python版本

    pyinstaller 开发版 支持2.7及3.3-3.6版本

    我使用的python是3.6.1的,直接使用pip install pyinstaller下载来的会报out of range 的错误,需要安装开发版;

    pyinstaller安装

    3.6之前的版本 : pip install pyinstaller
    3.6+的版本:

    • 官方网站 下载开发版;
    • 解压,在命令行中 cd 到解压后的源码目录中
    • python setup.py install 完成安装

    生成exe文件

    pyinstaller [options] XXX.py
    在这一步里常用的参数如下: -c 命令行程序 -w GUI程序 –icon="path" 生成exe的图标 -F 生成单个EXE文件
    默认情况下生成的是单个目录,里面包含一个可执行文件及相关依赖,是分开的;如果使用-F或 –onefile时,将会把所有依赖打包时exe文件中
    默认情况下均会包含有命令行,好处是在出错的时候会告诉你哪里出错了,GUI程序在调试完成后可以指定 -w 的参数取消命令行提示
    默认情况下的快捷方式图标比较丑,自己选择一个吧
    默念情况下生成的是单目录,有利于更新,但看起来比较乱,请自行选择吧

    修改XXX.spec
    如果你没有依赖外部图片、字体等资源时,可以跳过该步骤;
    加入依赖的外部资源,下面的例子就是加入外部字体文件(1.ttf和7.ttf):

    1. a =Analysis(['window.py'],
      pathex=['E:\pycharm Space\pyStudy\window'],
      binaries=[],
      datas=[],
      hiddenimports=[],
      hookspath=[],
      runtime_hooks=[],
      excludes=[],
      win_no_prefer_redirects=False,
      win_private_assemblies=False,
      cipher=block_cipher)
      a.datas +=[('1.ttf','D:\fonts\1.ttf','DATA'),('7.ttf','D:\fonts\7.ttf','DATA')]

    生成exe文件
    执行 pyinstaller XXX.spec 就可以得到可执行文件了;
    如果是单文件模式:生成文件位置为: dist/XXX.exe
    如果是单目录模式: 生成文件位置为: dist/XXX/XXX.exe

    异常处理

    如果在执行exe文件出错时,请使用命令行执行,会提示异常信息的~~~
    如果没有异常,可能原因是在打包时加了 -w 的参数强制使用了GUI模式,把这个参数去掉再试一次

  • 相关阅读:
    Jenkins的安全控制
    浅谈JNDI的使用
    hdu 4544 湫湫系列故事——消灭兔子
    如何在工作和实践中学习射频知识
    JSONObject 解析
    SharePoint 2010 WebPart Web部分 总的膏
    J2EE学习笔记
    C和指针 (pointers on C)——第十二章:利用结构和指针
    UVA
    EasyUI-DataGrid多线动态实现选择性合并
  • 原文地址:https://www.cnblogs.com/417xiaoliu/p/6961467.html
Copyright © 2011-2022 走看看