源由

最近公司让做了一个小工具,使用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. Linux软件安装管理

    1.软件包管理简介 1.软件包分类 源码包 脚本安装包 二进制包(RPM包.系统默认包) 2.源码包 源码包的优点是: 开源,如果有足够的能力,可以修改源代码 可以自由选择所需要的功能 软件设计编译安 ...

  2. git的使用(进阶篇)

    如何处理代码冲突 冲突合并一般是因为自己的本地做的提交和服务器上的提交有差异,并且这些差异中的文件改动,Git不能自动合并,那么就需要用户手动进行合并 如我这边执行git pull origin ma ...

  3. 详解python命名空间和作用域

    1.典型案例 先从几个典型的案例来看下名称空间及作用域对python代码运行的影响,请看下面几个代码实例及其执行结果,是否符合你的预期. 代码1:块作用域 if True: i = 1 print i ...

  4. [译]ASP.NET Core 2.0 中间件

    问题 如何创建一个最简单的ASP.NET Core中间件? 答案 使用VS创建一个ASP.NET Core 2.0的空项目,注意Startup.cs中的Configure()方法: public vo ...

  5. 【转】C缺陷和陷阱学习笔记

    http://www.cnblogs.com/hbiner/p/3591335.html?utm_source=tuicool&utm_medium=referral 这段时间把<C陷阱 ...

  6. [PGM] Bayes Network and Conditional Independence

    2 - 1 - Semantics & Factorization 2 - 2 - Reasoning Patterns 2 - 3 - Flow of Probabilistic Influ ...

  7. 微信小程序图片放大预览

    需求:当点击图片时,当前图片放大预览,且可以左右滑动 实现方式:使用微信小程序图片预览接口 我们可以看到api需要两个参数,分别通过下面的data-list和data-src来传到js中 wxml代码 ...

  8. Android中的intent属性

    android之Intent的七大属性 2015年04月03日 ⁄ Android ⁄ 共 14866字 ⁄ 字号 小 中 大 ⁄ 1条评论 Intent用于封装程序的“调用意图”.两个Activit ...

  9. 2017广东工业大学程序设计竞赛决赛-tmk买礼物

    tmk买礼物 Description 今天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LSH庆祝一下. TMK进入了雪梨超市,然后刚踏入的一瞬间,店主就对TMK说:“恭喜你成为了本店 ...

  10. Building Block

    Building Block Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...