源由

最近公司让做了一个小工具,使用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. java8中Stream数据流

    筛选重复的元素 Stream 接口支持 distinct 的方法, 它会返回一个元素(根据流所生成元素的 hashCode和equals方法实现)的流. 例如,以下代码会筛选出列表中所有的偶数,并确保 ...

  2. 即时通信系统Openfire分析之八:集群管理

    前言 在第六章<路由表>中,客户端进行会话时,首先要获取对方的Session实例.获取Session实例的方法,是先查找本地路由表,若找不到,则通过路由表中的缓存数据,由定位器获取. 路由 ...

  3. 基于nginx搭建简易的基于wcf集群的复杂均衡

    很多情况下基于wcf的复杂均衡都首选zookeeper,这样可以拥有更好的控制粒度,但zk对C# 不大友好,实现起来相对来说比较麻烦,实际情况下,如果 你的负载机制粒度很粗糙的话,优先使用nginx就 ...

  4. Java8 新特性之Stream----java.util.stream

    这个包主要提供元素的streams函数操作,比如对collections的map,reduce. 例如: int sum = widgets.stream() .filter(b -> b.ge ...

  5. ajax 轮询 和 php长连接

     只看加粗的字体 js   部分       1:  ajax 成功回调函数中 一定要用时间函数间隔调用  get_comment(). get_comments('init'); function ...

  6. Java基础总结--数组

    ---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...

  7. yii2之GridView小部件

    GridView小部件用于展示多条数据的列表.GridView小部件的使用需要数据提供器即yii\data\ActiveDataProvider的实例作为参数,所以 第一步就是要在控制器方法中创建这个 ...

  8. ssh更改默认端口号及实现免密码远程登陆

    近来在复习防火墙管理工具 iptables 的基本使用方法,涉及到对端口添加或删除防火墙策略的内容,之前对ssh更改默认端口号及免密码登录的方法不熟悉,这次做一个基本的总结防止自己遗忘. 错误偏差及其 ...

  9. 将一个实体转换成 Url 参数的形式 ?a=a&b=b

    function toQueryString(obj) { var ret = []; for (var key in obj) { key = encodeURIComponent(key); va ...

  10. Linux系列教程(十)——Linux文本编辑器vim

    通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...