Python如何生成windows可执行的exe文件

打包工具

  • pyinstaller

安装pyinstaller

如果你的网络稳定,通常直接使用下面的命令安装即可:

pip install pyinstaller

当然了,你也可以下载pyinstaller源码包,然后进入包目录执行下面的命令,同样可以安装(前提是需要安装setuptools):

python setup.py install

 

检查pyinstaller安装成功与否:

只需要执行如下命令其中一个即可:

pyinstaller --version
pyinstaller -v

 

pyinstaller参数作用

  • -F 表示生成单个可执行文件
  • -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
  • -w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧
  • -c –console, –nowindowed 使用控制台,无界面(默认)
  • -p 表示你自己自定义需要加载的类路径,一般情况下用不到
  • -i 表示可执行文件的图标
  • 其他参数,可以通过pyinstaller --help查看

开始打包

进入python需要打包的脚本所在目录,然后执行下面的命令即可:

pyinstaller -F -i favicon.ico xxx.py

 

打包结果

打包完成后,进入到当前目录下,会发现多了__pycache__、build、dist、nhdz.spec这四个文件夹或者文件,其中打包好的exe应用在dist目录下面,进入即可看到,可以把他拷贝到其他地方直接使用,如下图所示,是打包完成后的目录:

 

执行exe应用

因为是exe应用,是可执行文件了,所以直接双击运行即可,运行效果如下图所示:

 

到这里,exe文件就已经生算是打包完成,并且可以运行了,如果你想在其他平台运行,只需要拷贝dist下面的文件即可

ICO图标制作

前面需要用到ICO图标,大家可以网上搜索“ICO 在线生成”,可以直接点击ICO图标制作在上面制作、然后保存也行

 

测试程序源码

# -*- coding: utf-8 -*-
# @Time    : 2019/07/14 19:47
# @Author  : Liu
# @File    : exe.pyimport 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()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

招商银行信用卡中心华泰证券暑期实习软开笔试小结

白菜自动化小硕一枚&#xff0c;18届&#xff0c;下学期就正式要找工作了&#xff0c;没有实习经验&#xff0c;感觉心慌慌。现在学校里已经开始各种提前招实习&#xff0c;内推了&#xff0c;so暑假想提前试试水&#xff0c;投一投暑期实习。 看到心水的单位就投一投&#xff…

理想的程序猿

出处 | http://guoze.me 最近看到的一篇不错的文章&#xff0c;分享一下。 我算是靠坑蒙拐骗进了程序员的门&#xff0c;然后一路狂奔。26岁之前几乎没有任何写代码的经验&#xff0c;研究生毕业却意外选择了一家不可能提供培训的初创公司&#xff0c;在每日担忧公司倒闭、害…

node08-express

目录&#xff1a;node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-express node09-cookie express模块&#xff1a; 1 /*2 * express是一个应用框架3 * 1、路由4 * 2、中间件5 * 3、模板引擎6 * */7 8 var express requ…

【python】1. 两数之和

给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个 整数&#xff0c;并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;你不能重复利用这个数组中同样的元素。 示例: 给定 nums [2, 7, 11, 15], t…

The user specified as a definer (#39;root#39;@#39;%#39;) does not exist

&#xfeff;&#xfeff;通常是因为root用户对全局host无訪问权限。因此仅仅要给root用户加入一个訪问权限就可以。解决的方法&#xff1a; 登陆mysql 。运行 mysql -u root -pPasswd mysql >grant all privileges on *.* to root"%" identified by "Passwd…

Java基础常见笔试题总结

以下是自己总结的一些Java常见的基础知识题&#xff0c;答案仅供参考&#xff0c;如有异议请指出。一直保持更新状态。 1.什么是Java虚拟机&#xff1f;为什么Java被称作是“平台无关的编程语言”&#xff1f; Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编…

ThreadLocal的练习代码

场景: 有三个小孩儿,买了一个变形金刚玩具(Transformer).... 三个小孩都争着玩这个玩具....没有一个人可以玩... 第一种方式:每个人各玩一会.... 第二种方式:再买两个玩具,一个人玩一个. 每个小孩都当成一个线程.三个小孩就有三个线程. Child.java 2 3 import java.util.Random…

nginx+uwsgi部署Django

本篇文章主要介绍了解决nginxuwsgi部署Django的所有问题(小结)&#xff0c;小编觉得挺不错的&#xff0c;现在分享给大家&#xff0c;也给大家做个参考。一起跟随小编过来看看吧 最近&#xff0c;自己暑假写的小项目也算完毕了&#xff0c;想着投放到自己云服务器上&#xff0…

$(document).scrollTop()与$(window).scrollTop()

$(document).scrollTop() 获取垂直滚动的距离 即当前滚动的地方的窗口顶端到整个页面顶端的距离 要获取顶端 只需要获取到scrollTop()0的时候 就是顶端了 要获取底端 只要获取$(document).scrollTop()>(document).height()−(window).height() 就可以知道已经…

各种机器学习开源项目精选TOP30

8800个机器学习开源项目为你精选TOP30&#xff01; 授权自AI科技大本营&#xff08;ID: rgznai100) 本文共图文结合&#xff0c;建议阅读5分钟。 本文为大家带来了30个广受好评的机器学习开源项目。 最近&#xff0c;Mybridge发布了一篇文章&#xff0c;对比了过去一年中机…

Python中is与==的使用区别详解

>>> a 1000 >>> b 1000 >>> print(id(a),id(b)) 2689566689904 2689566688880 >>> a ,b 1000,1000 >>> print(id(a),id(b)) 2689566689968 2689566689968 一行执行的用一个id地址 分行执行用两个地址

解决:Please specify a different SDK name--PyCharm报错

这个问题出现的原因是因为PyCharm中存在相同名字的虚拟环境变量。 本人的出错原因是&#xff0c;一直使用PyCharm的默认设置来建立工程&#xff0c;所以每个工程都建立了自己独立的虚拟环境。 我个人删除了一些工程后&#xff0c;又建立相同名字的工程。所以才会出现存在相同…

Tomcat控制台输出到文件

为什么80%的码农都做不了架构师&#xff1f;>>> 修改startup.bat call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\test.log 转载于:https://my.oschina.net/cccyb/blog/886047

常见算法详解(原理及代码实现Python版本)

文章目录前言1、冒泡排序2、选择排序3、插入排序4、希尔排序5、快速排序6、归并排序7、二分法查找总结前言 最近复习了下常见的算法&#xff0c;在这里手动再写一遍&#xff0c;权当加深自己的印象。代码实现用的是python3.6版本。 1、冒泡排序 原理&#xff1a; 冒泡排序&a…

解决:pycharm运行程序时在Python console窗口中运行 һ����ң�������1�����

解决&#xff1a;pycharm运行程序时在Python c 问题&#xff1a; 在pycharm中右键点击run运行程序&#xff0c;发现没有打开run窗口运行&#xff0c;而是在Python console窗口中运行的。 解决方法&#xff1a; 打开菜单栏 run->edit configurations&#xff0c; 把下图中的…

Autowire异常

Autowire异常主要由三个情况发生的 1. 你的ServiceImpl必须以Service或Component注解才行。 2. 自动写入的时候把接口写成实现类了&#xff0c;例如 Autowired private BrandServiceImpl brandServiceImpl; 应该是 Autowired private BrandService brandService; 3. 在Dao 类上…

[转载] 全方位提升网站打开速度:前端、后端、新的技术

原文地址&#xff1a;Building a Shop with Sub-Second Page Loads: Lessons Learned原文作者&#xff1a;Erik Witt译文出自&#xff1a;掘金翻译计划译者&#xff1a;luoyaqifei校对者&#xff1a;Romeo0906&#xff0c;L9m全方位提升网站打开速度&#xff1a;前端、后端、新…

20个顶级大数据软件应用程序

目录1. Domo2. Teradata Database3. Hitachi Vantara4. TIBCO公司的Statistica5. Panoply6. IBM Watson Analytics7. SAS Visual Analytics8. Sisense商业智能软件9. Talend的大数据工作室10. Cloudera11. MongoDB12. Vertica Analytics Platform13. SAP Vora14. Oracle Big Da…

python完成‘21点游戏’

完成‘21点游戏’ 人机对战&#xff1a; 输入玩家姓名&#xff1a;玩家可以多次要牌&#xff0c;其中JQK&#xff0c;大小王是半点&#xff0c;其他是正常点数&#xff0c;玩家每要一次牌就打印下当前点数和系统点数。可以设置系统&#xff1a;只要大于等于21点就不要牌了&am…

materialrefeshlayout下拉刷新,上拉加载更多

1.添加依赖:compile com.cjj.materialrefeshlayout:library:1.3.0 2.布局中添加控件&#xff0c;包裹list控件<com.cjj.MaterialRefreshLayoutxmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto…