源由

最近公司让做了一个小工具,使用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模式,把这个参数去掉再试一次

python打包exe pyinstaller 简单使用的更多相关文章

  1. python打包exe之pyinstaller用法

    pyinstaller可以将python写好的脚本打包成exe文件,方便windows用户在没有python环境下运行.这个程序完全跨平台,包括Windows.Linux.Mac OS X等多个操作系 ...

  2. Python打包EXE神器 pyinstaller

    最近由于项目需要,以前的python文件需要编辑为EXE供前端客户使用. 由于最早接触的是distutils,所以一开始准备使用distutils和py2exe搭配来进行python的exe化,也就是 ...

  3. $python打包工具pyinstaller的用法

    pyinstaller是一个很好用的python打包工具,在Windows环境下可以将python脚本打包成一个exe可执行文件,并且脚本中所依赖的各种第三方库在打包时候都会被统一处理到一起,这样打包 ...

  4. python打包工具 --- pyinstaller

    安装 安装python并添加到环境变量之后,在终端执行如下命令即可: pip install pyinstaller 截图如下: 若安装失败,可到: https://www.lfd.uci.edu/~ ...

  5. python 打包exe

    下载及安装:pip install pyinstaller 执行命令: pyinstaller -F xxx.py pyinstaller --onefile meng.py 可以运行的exe文件位于 ...

  6. Python打包方法——Pyinstaller (转)

      Python版本:Python3.5.2 一.安装Pyinstaller 1.安装pywin32 下载安装文件:查找到跟自己适用的python版本及window系统版本匹配的pywin32,下载后 ...

  7. Python打包方法——Pyinstaller

    Python版本:Python3.5.2 一.安装Pyinstaller 1.安装pywin32 下载安装文件:查找到跟自己适用的python版本及window系统版本匹配的pywin32,下载后安装 ...

  8. python打包工具pyinstaller的使用

    安装PyInstaller pip install pyinstaller 安装完后,检查安装成功与否: pyinstaller --version 安装成功后,就可以使用下面的命令了: pyinst ...

  9. Python打包之pyinstaller

    Pyinstaller 进行对应目录下的打包 执行完后请注意建议将该m2的拷贝走 加了参数-w后不会出现黑色控制台的窗子 常用参数说明: –icon=图标路径 -F 打包成一个exe文件 -w 使用窗 ...

随机推荐

  1. iOS10新特性之SiriKit

    在6月14日凌晨的WWDC2016大会上,苹果提出iOS10是一次里程碑并且推出了十个新特性,大部分的特性是基于iPhone自身的原生应用的更新,具体的特性笔者不在这里再次叙述,请看客们移步WWDC2 ...

  2. Android之View绘制流程源码分析

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 对于稍有自定义View经验的安卓开发者来说,onMeasure,onLayout,onDraw这三个方法都不会陌生,起码多少都有所接触吧. 在安卓中 ...

  3. 【Java学习笔记之三十四】超详解Java多线程基础

    前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的 ...

  4. tar split cat 创建、合并分卷压缩包

    最近用微盘传文件遇到的问题,超过100M不能一次传啊,想想win下有rar和zip创建分卷压缩包很简单,就像linux的tar打包器应该也可以吧,搜了下,要和split配合完成 具体命令如下:对文件: ...

  5. IDEA-最简单的struts2项目 关于lib项目的默认位置

    文件结构 struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...

  6. iOS 之 runtime --- 集百家之言

    runtime runtime用在什么地方? 说法 在程序运行过程中,动态的创建一个类(比如KVO的底层实现) 在程序运行过程中,动态地为某个类添加属性.方法,修改属性值\方法(method swiz ...

  7. leaflet+esri-leaflet+heatmap实现热力图

    1.环境准备 1)下载leaflet.js插件,  官网传送:http://leafletjs.com/ 2)下载esri-leaflet.js插件,  官网传送:http://esri.github ...

  8. bug:页面交互操作引发的问题

    最近在测试一些h5页面,突然悟到一些测试点 需求点: 用户可以在页面领取礼物,领取的礼物在页面底部展示,用户点击礼物可调起分享弹窗,礼物超过一屏可左右滑动, bug的表现形式: 仅当礼物超过一屏时(一 ...

  9. Linux学习(三)putty,xshell使用以及密匙登陆

    一.认识xshell,putty 他们都是服务器登陆客户端.xshell用户体验更好一点.但这里都学一下. putty下载地址:https://www.chiark.greenend.org.uk/~ ...

  10. HDU 4291 A Short problem(矩阵+循环节)

    A Short problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...