一.pyinstaller简介

pyinstaller将Python脚本打包成可执行程序,使在没有Python环境的机器上运行

最新版是pyinstaller 3.1.1。支持python2.7和python3.3+。

可运行在Windows,Mac和Linux操作系统下。

但它不是跨编译的,也就是说在Windows下用PyInstaller生成的exe只能运行在Windows下,在Linux下生成的只能运行在Linux下。

二.pyinstaller在windows下的安装

使用命令pip install pyinstaller即可

在windows下,pyinstaller需要PyWin32的支持。当用pip安装pyinstaller时未找到PyWin32,会自动安装pypiwin32

出现Successfully installed pyinstaller-3.1.1 pypiwin32-219即表示安装成功

三.打包

打包的app里并不包含任何源码,但将脚本的.pyc文件打包了。

基本语法:

pyinstaller options myscript.py
常用的可选参数如下:
--onefile 将结果打包成一个可执行文件
--onedir 将所有结果打包到一个文件夹中,该文件夹包括一个可执行文件和可执行文件执行时需要的依赖文件(默认)
--paths=DIR 设置导入路径
--distpath=DIR 设置将打包的结果文件放置的路径
--specpath=DIR 设置将spec文件放置的路径
--windowed 使用windows子系统执行,不会打开命令行(只对windows有效)
--nowindowed 使用控制台子系统执行(默认)(只对windows有效)
--icon=<FILE.ICO> 将file.ico添加为可执行文件的资源(只对windows有效)

如pyinstaller --paths="D:\Queena" guess_exe.py

四.小实例(windows下)

写好游戏文件guess_exe.py,代码如下:

__author__ = 'qa-2'
# -*- coding:utf-8 -*-
# 摇3次骰子,当总数total,3<=total<=10时为小,11<=total<=18为大
import random
import timedef enter_stake(current_money):'''输入小于结余的赌资及翻倍率,未考虑输入type错误的情况'''stake = int(input('How much you wanna bet?(such as 1000):'))rate = int(input("What multiplier do you want?你想翻几倍?(such as 2):"))small_compare = current_money < stake * ratewhile small_compare == True:stake = int(input('You has not so much money ${}!How much you wanna bet?(such as 1000):'.format(stake * rate)))rate = int(input("What multiplier do you want?你想翻几倍?(such as 2):"))small_compare = current_money < stake * ratereturn stake,ratedef roll_dice(times = 3):'''摇骰子'''print('<<<<<<<<<< Roll The Dice! >>>>>>>>>>')points_list = []while times > 0:number = random.randrange(1,7)points_list.append(number)times -= 1return points_listdef roll_result(total):'''判断是大是小'''is_big = 11 <= total <= 18is_small = 3 <= total <= 10if is_small:return 'Small'elif is_big:return 'Big'def settlement(boo,points_list,current_money,stake = 1000,rate = 1):'''结余'''increase = stake * rateif boo:current_money += increaseprint('The points are ' + str(points_list) + ' .You win!')print('You gained $' + str(increase) + '.You have $' + str(current_money) + ' now.' )else:current_money -= increaseprint('The points are ' + str(points_list) + ' .You lose!')print('You lost $' + str(increase) + '.You have $' + str(current_money) + ' now.' )return current_moneydef sleep_second(seconds=1):'''休眠'''time.sleep(seconds)# 开始游戏
def start_game():'''开始猜大小的游戏'''current_money = 1000print('You have ${} now.'.format(current_money))sleep_second()while current_money > 0:print('<<<<<<<<<<<<<<<<<<<< Game Starts! >>>>>>>>>>>>>>>>>>>>')your_choice = input('Big or Small: ')choices = ['Big','Small']if your_choice in choices:stake,rate = enter_stake(current_money)points_list = roll_dice()total = sum(points_list)actual_result = roll_result(total)boo = your_choice == actual_resultcurrent_money = settlement(boo,points_list,current_money,stake,rate)else:print('Invalid input!')else:sleep_second()print('Game Over!')sleep_second(2)if __name__ == '__main__':start_game()

之后命令行,切换到guess_exe.py的目录下,
输入:

pyinstaller --onefile --nowindowed --icon=" D:\Queena\PyCharmProjects\dist1\computer_three.ico" guess_exe.py

就会在当前文件下形成build文件夹、dist文件夹和.spec文件。
dist里就是guess_exe.exe可执行文件。

如果有打包错误,具体看build里的warn*.txt文档,里面详细记载了错误的原因。一般都是库丢失。
spec文件告诉PyInstaller如何去处理脚本。它对脚本名以及大多数pyinstaller的可选参数进行加密。PyInstaller就是通过执行spec文件的内容来build the app。

原文出处:http://www.jianshu.com/p/8dbdfbd3716d

Python导出为exe程序相关推荐

  1. Python脚本导出为exe程序

    环境:Pycharm2019.1 + Win10 + Python3.7.3 一.pyinstaller简介 Python是一个脚本语言,被解释器解释执行.它的发布方式: .py文件:对于开源项目或者 ...

  2. python导出_Python脚本导出为exe程序

    三.开始打包PY文件为EXE文件 cmd(或Power shell)进入py程序项目目录,执行命令:pyinstaller -F -w --icon=xxx.ico main.py --noconso ...

  3. Python脚本制作exe程序超详细!

    Python脚本制作exe程序 1 为什么要将python脚本打包成exe程序 2 制作exe程序 1 为什么要将python脚本打包成exe程序 Python具有丰富和强大的库,能够把用其他语言制作 ...

  4. python转成exe_将python程序转换成exe程序

    将python程序转换成exe. 一. 先安装python 2.安装下载包,一路next. 3.为计算机添加安装目录搭到环境变量,如图把python的安装目录添加到pth系统变量中即 可.(D:\\p ...

  5. python能做出exe程序么_教你用python做exe程序

    pyinstaller是一个python扩展包,可以将python文件转换成exe文件,这样就可以实现在没有python的环境下运行想运行的程序啦! 也可以用python做一个windows桌面应用程 ...

  6. python打包成.exe程序

    一.需求 有些时候,我们想做个带图形化界面的小工具用于pc端,使用MFC当然可以,java也有何不可,那么使用python呢?是否也可以把带有图形化界面的python程序打包成.exe程序?答案是肯定 ...

  7. python3打包成exe怎么给别人用_pyinstaller 打包python文件成.exe程序

    使用pycharm写好的代码,每次都要使用pycharm来执行比较麻烦,打包成.exe程序后可以直接运行,还可以发到别的电脑上执行,比较方便. 1.打开cmd命令提示符窗口,cd到pip.exe所在的 ...

  8. Python调用外部EXE程序遍历窗体及控件并获取控件信息。

    背景 我的工作中经常手工运行一个windows程序(密码生成工具),获取该程序的计算结果,手工填到登录表单的中.该程序非常久远,已无人维护.根据凡是重复2次以上的工作都应该自动化原则,那么我来写个自动 ...

  9. 如何把Python脚本导出为exe程序

    转载自: http://www.jianshu.com/p/8dbdfbd3716d 一.pyinstaller简介 pyinstaller将Python脚本打包成可执行程序,使在没有Python环境 ...

最新文章

  1. 父子表关联在窗体中的绑定显示和浏览
  2. php.ini 中文英文对照详细配置手册
  3. netstat -an中state含义
  4. Puppet 之 模板和模块
  5. LOJ 3156: 「NOI2019」回家路线
  6. 多线程死锁及解决办法
  7. Linux的实际操作:文件目录类的实用指令(echo head tail)
  8. 自动化测试工具selenium 之Selenium-IDE
  9. 从高级程序员的角度来看,Rust 基础知识
  10. 面试官:如何评估一个线程池需要设置多少个线程
  11. 记录贴:阿里云 ECS服务器CentOS系统 搭建 Hexo 博客详细教程
  12. 传统网络通信模式、RDMA技术、InfiniBand协议、IB卡(IB交换机)之间的关系?
  13. c语言仿宋gb2312字体,gb2312字体下载|仿宋gb2312字体 v2.0 官方版-520下载站
  14. 2021年最好用&完全免费的图片压缩网站、软件推荐(包括GIF)
  15. 微信小程序弹窗禁止页面滚动
  16. 吴恩达—机器学习的六个核心算法
  17. Memory stream is not expandable
  18. POJ 1033--Defragment
  19. 1000瓶水有1瓶水有毒,老鼠喝一滴就会死,但是需要一周毒发,请问最少需要多少老鼠多少时间才能找到那瓶有毒的水。
  20. uml建模工具 支持php,【UML 建模】在线UML建模工具 ProcessOn 使用详解

热门文章

  1. 如何在C#+VS2012环境中使用AutoIt
  2. win10自带记事本的编码问题
  3. LinuxC/C++服务器开发学习路线(已签腾讯sp,附学习资料)
  4. 基于最大相关最小冗余的特征选择方法MRMR
  5. 3.02 进程状态转换图
  6. 用python编程 押宝游戏
  7. 赵小楼《天道》《遥远的救世主》深度解析(138)不强生不恶死。当下的情况就是:最好的求生就是不求生
  8. 如何批量查询搜狗收录?提升搜狗收录8个方法介绍
  9. 我的创业日记2(公司愿景)——我们的目标
  10. Java实现 LeetCode 16 最接近的三数之和