昨天慢步熬夜写了一篇干货满满的文章,不知道什么原因,文章并未被推荐。
今天再来换个方式写一次。
把自己编写的python源代码转换成可执行程序
笔者继续用自编的《货币兑换程序3.0》为例。CurrencyExchange3.py 就是货币兑换程序3.0的源代码。
考虑汇率会变化,笔者更新了代码中,林吉特兑人民币的汇率。
CurrencyExchange3.py源代码:
"""程序名称:货币兑换 3.0作者:地铁慢步日期:-03-17更新日期:-05-03说明:1.实现人民币及林吉特之间的转换2.获取信息新增:3.选择输入的货币类型"""rate = 1.6446 # 1林吉特=1.6446人民币currency_type = input("选择输入货币类型,按回车键确定 L:林吉特 R:人民币:") # 输入信息 赋值 给 currency_type变量get_str = input("输入货币数量:") # 获得数量的 字符串currency_num = eval(get_str) # 转换成数值 "4000"字符串 取值函数 得到 数字 4000if currency_type == "R" or currency_type == "r": # 判断对比 == 等于 ; < > <= >= !=# or andinput_currency = "人民币"output_currency = "林吉特"rate_choice = 1 / rateelif currency_type == "L" or \currency_type == "l": # 分支input_currency = "林吉特"output_currency = "人民币"rate_choice = rateelse:print("输入信息有误!")if currency_type == "L" or currency_type == "l" or currency_type == "R" or currency_type == "r":get_num = currency_num * rate_choiceprint("{}{}可兑换成{}的数量为:{}".format(currency_num, input_currency, output_currency, get_num)) # 输出语句(输出函数)
好了,简陋程序源代码有了。
那么笔者需要pyinstaller了。
接受之前文章评论的意见,在command中使用pip应该会香一点。毕竟还是比较简便的。
查看python已安装的库
pip是python官方提供并维护的在线第三方库安装工具。pip工具安装,是目前最常用最高效的python第三方库安装。
第三方库功能强大,像笔者现在需要的pyinstaller也是一个第三方库。笔者先查看电脑已安装的第三方库。方式如下:
打开命令行:电脑-运行-cmd
命令行中输入指令: pip list 回车键
嗯,笔者确定自己的计算机没有安装pyinstaller。
黄色字体还提示pip存在更新的版本,及更新方式。
通过复制引号内指令可以实现更新
笔者顺手更新了pip,上面的花花绿绿的外观,是笔者手多,缩放窗口造成的,反正最后更新pip成功了。
安装pyinstaller
pip install pyinstaller (默认为cmd内输入指令,以后不再赘述)
第一次失败,如红字提示:读取超时。
再来一次,pip install pyinstaller,终于可以看到安装进度条了。然而还是失败,继续pip install pyinstaller,红字提示:Read timed out. 笔者想想,还是把杀毒软件先关了。继续pip install pyinstaller,再次失败……
幸好每次都有新进度
终于安装成功了。
再次 pip list 查看。python已经多了好几个第三方库,咱们想要的 PyInstaller 3.6 也在了。
pyinstaller的使用方式?
怎么用pyinstaller?笔者也只是比大家大只一点的小白,嗯,慢步算是老白。但是笔者知道到哪里去找自己需要的信息啊。笔者喜欢看官网,于是笔者去了pyinstaller的官网
PyInstaller官网首页就有安装和使用pyinstaller的指令。
Install PyInstaller from PyPI:
pipinstallpyinstaller
Go to your program’s directory and run:
pyinstalleryourprogram.py
第一条是安装指令,pipinstallpyinstaller。上面已经用过了。
第二条,是最简单的使用指令。在command(命令行)内,进入py文件所在目录,输入指令:
pyinstaller yourprogram.py
这里的yourprogram.py,就是你想要编译成机器语言的源代码文件。在笔者这里就是CurrencyExchange3.py
生成程序吧。
查看CurrencyExchange3.py的属性
复制py文件位置信息C:\Users\34719\Desktop\changeheadline,在cmd中用cd指令变更到这个目录内。
cd C:\Users\34719\Desktop\changeheadline
命令行内进入源代码所在目录后,执行pyinstaller的最简单指令
pyinstaller CurrencyExchange3.py
结果成功了?
最后提示是completed successfully.理论上源代码应该是成功转换成机器代码(独立程序)了的。
运行生成的程序
首先笔者犯了一个错误,目录内文件太多,给自己造成了干扰。执行pyinstaller命令后,目录内见到最新修改的文件有几个:
文件夹:build,dist,__pycache__
文件:CurrencyExchange3.spec
程序是怎么运行的?双击鼠标左键打开啊,CurrencyExchange3.spec打不开。尴尬。笔者一度认为转换成程序失败了。后来发现真正的程序在__pycache__中,那是一个文件,全名为 CurrencyExchange3.cpython-35.pyc。
打开程序。
选择r(人民币),输入货币数量500,回车等待结果
结果是……没有结果?????程序关闭了?
对比一下在交互界面下的运行结果
交互界面下运行源代码,最后会输出结果:
500人民币可兑换成林吉特的数量为:304.02529490453605
之后程序正常结束。
事实上,我们的独立程序CurrencyExchange3.cpython-35.pyc,也是这样的,它也输出了结果“500人民币可兑换成林吉特的数量为:304.02529490453605”,但它因为没有停留,继续运行的结果是没有代码后就正常关闭程序了。
因为太快关闭程序了,所以我们没有看到结果内容。
要有始有终,更新为一个正常运行程序。
要生成程序我们需要:1源代码,2pyinstaller,3在cmd内进行转换。
为了让结果更好,笔者还是想制作出一个可以正常运行的程序。
笔者新建了一个py文件,命名为:林吉特人民币兑换程序 ,代码内容由CurrencyExchange3.py复制过来。笔者在程序代码更新了部分信息,最后加了一个输入语句input,使界面停留在输入语句处,就可以看到结果了。
林吉特人民币兑换程序.py 源代码:
"""程序名称:林吉特人民币兑换程序 1.0作者:地铁慢步日期:-05-04说明:1.实现人民币及林吉特之间的转换2.获取信息3.选择输入的货币类型4.通过input语句来获得界面的停留5.增加辅助提示信息"""rate = 1.6446 # 1林吉特=1.6446人民币print('程序名称:林吉特人民币兑换程序 1.0''\n作者:地铁慢步''\n日期:-05-04''\n说明:''\n 1.实现人民币及林吉特之间的转换''\n 2.获取信息''\n 3.选择输入的货币类型''\n 4.通过input语句来获得界面的停留''\n 5.增加辅助提示信息''\n-05-04 1林吉特=1.6446人民币''\n******************************************************''\n')currency_type = input("选择输入货币类型,按回车键确定 L:林吉特 R:人民币:") # 输入信息 赋值 给 currency_type变量get_str = input("输入货币数量:") # 获得数量的 字符串currency_num = eval(get_str) # 转换成数值 "4000"字符串 取值函数 得到 数字 4000if currency_type == "R" or currency_type == "r": # 判断对比 == 等于 ; < > <= >= !=# or andinput_currency = "人民币"output_currency = "林吉特"rate_choice = 1 / rateelif currency_type == "L" or \currency_type == "l": # 分支input_currency = "林吉特"output_currency = "人民币"rate_choice = rateelse:print("输入信息有误!")if currency_type == "L" or currency_type == "l" or currency_type == "R" or currency_type == "r":get_num = currency_num * rate_choiceprint("{}{}可兑换成{}的数量为:{}".format(currency_num, input_currency, output_currency, get_num)) # 输出语句(输出函数)endstr = input("感谢使用林吉特人民币兑换程序 1.0!按任意键结束。")if endstr == "":print("你没有按键盘?")
生成程序的过程是同样的操作,命令行内的指令如下。路径信息和py文件存放目录一致即可。
pyinstaller 林吉特人民币兑换程序.py
有了之前的经验和教训,生成程序非常成功。还是在__pycache__文件夹内。运行结果如下。
终于,大功告成,程序运行正常。这也是笔者真正意义上的第一个程序。
笔者不是大咖,笔者只想提供有限的价值。这篇文,写给小白。
如果觉得《python 代码转程序_如何用pyinstaller把自己编写的python源代码转换成可执行程序?...》对你有帮助,请点赞、收藏,并留下你的观点哦!