Python如何生成windows可执行的exe文件(python运行exe文件并输入命令)

网友投稿 697 2022-08-26


Python如何生成windows可执行的exe文件(python运行exe文件并输入命令)

打包工具

pyinstaller

安装pyinstaller

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

pip install pyinstaller

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

python setup.py install

检查pyinstaller安装成功与否:

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

pyinstaller --versionpyinstaller -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图标制作

测试程序源码

# -*- coding: utf-8 -*-# @Time : 2019/07/14 19:47# @Author : Liu# @File : exe.pyimport randomimport 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 * rate while 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 * rate return 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 -= 1 return points_listdef roll_result(total): '''判断是大是小''' is_big = 11 <= total <= 18 is_small = 3 <= total <= 10 if is_small: return 'Small' elif is_big: return 'Big'def settlement(boo,points_list,current_money,stake = 1000,rate = 1): '''结余''' increase = stake * rate if boo: current_money += increase print('The points are ' + str(points_list) + ' .You win!') print('You gained $' + str(increase) + '.You have $' + str(current_money) + ' now.' ) else: current_money -= increase print('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 = 1000 print('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_result current_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()


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:项目完成(项目完成总结报告)
下一篇:SpringBoot2.6.x默认禁用循环依赖后的问题解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~