失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 代码转程序_如何用pyinstaller把自己编写的python源代码转换成可执行程序?...

python 代码转程序_如何用pyinstaller把自己编写的python源代码转换成可执行程序?...

时间:2019-07-14 05:15:50

相关推荐

python 代码转程序_如何用pyinstaller把自己编写的python源代码转换成可执行程序?...

昨天慢步熬夜写了一篇干货满满的文章,不知道什么原因,文章并未被推荐。

今天再来换个方式写一次。

把自己编写的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源代码转换成可执行程序?...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。