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

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

把自己编写的python源代码转换成可执行程序

笔者继续用自编的《货币兑换程序3.0》为例。CurrencyExchange3.py 就是货币兑换程序3.0的源代码。

考虑汇率会变化,笔者更新了代码中,林吉特兑人民币的汇率。

CurrencyExchange3.py源代码:

"""程序名称:货币兑换 3.0作者:地铁慢步日期:2020-03-17更新日期:2020-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作者:地铁慢步日期:2020-05-04说明:1.实现人民币及林吉特之间的转换2.获取信息3.选择输入的货币类型4.通过input语句来获得界面的停留5.增加辅助提示信息"""rate = 1.6446 # 1林吉特=1.6446人民币print('程序名称:林吉特人民币兑换程序 1.0''\n作者:地铁慢步''\n日期:2020-05-04''\n说明:''\n 1.实现人民币及林吉特之间的转换''\n 2.获取信息''\n 3.选择输入的货币类型''\n 4.通过input语句来获得界面的停留''\n 5.增加辅助提示信息''\n2020-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源代码转换成可执行程序?...相关推荐

  1. python代码没有反应_没有任何编程经验者不要被Python简明手册误导。

    想学python,没有任何编程经验者不要被python简明手册误导. 1.python简明手册是一本好书 但这本书是针对有经验的程序员看的,详细一点说,有3年以上c++/java,.delphi/vb ...

  2. 用python写秒杀程序_马上双十一,教你用Python实现秒杀系统

    简书博客地址: https://www.jianshu.com/u/8f4d80000566 大家好,我是老表 阅读文本大概需要 10 分钟 坚持学习很难,养成学习习惯更难 架构搭建是重点,代码或语言 ...

  3. 一个随时写python代码的神器_牛逼啊!一个随时随地写Python代码的神器

    现在学Python的人越来越多,很多小伙伴都非常有激情.利用碎片时间随时随地学习Python, 大家知道Python是一门编程语言,但是学语言光看不练是没有用的.最好能编程并运行,有没有什么好的神器可 ...

  4. python猜大小程序_「每日一练」巧用python实现猜大小的游戏

    import random 调用random函数,用来生成一个随机数 第二行: def guess(): num=random.randint(1,10) 定义一个guess的函数,刚开始先随机生成一 ...

  5. python 打卡程序_如何用python实现腾讯文档自动打卡并定时执行

    最近学了些Web,了解了一些selenum包内函数使用,就写了下自动健康打卡,并用windows任务计划程序定时执行,健康打卡这个针对特定网站,所以对于通用化使用倒没有太大用处,但关于腾讯文档如何填写 ...

  6. python代码做图_如何用Python代码制作图

    Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. 图是一 ...

  7. 利用python写时钟程序_如何用python编写一个番茄钟程序

    今天,我们尝试用python来编写一个简单的PC端番茄钟,需要实现的功能如下:启动时"滴"一声并询问:"休息时间结束!是否开始一个新的番茄钟?" 如果用户点击& ...

  8. python 代码转程序_精悍的Python代码段-转

    1 文件处理 readlines() 和 writelines()方法可以讲列表元素依次写到文件中: file类本身没有提供复制方法,可以使用read()和write()方法模拟实现文件的拷贝,也可以 ...

  9. python代码计算字数_如何用python计算文件的字数

    展开全部 #这边的TXT需要改动 flies = open('My Father.txt','r') lines = flies.readlines() lens = len(lines) dicts ...

最新文章

  1. 入门4:PHP 语法基础1
  2. Fedora 8中驱动ASUS6摄像头
  3. 如何有效利用SD-WAN改善网络性能?
  4. 从这篇文章可以看出有些错误,由此可以看出,还是看msdn要好的多,这是我的经验
  5. Program terminated with signal 11, Segmentation fault.
  6. 输入列画表格 在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。 有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)...
  7. 应用层为何不能设置分辨率
  8. php面试php数组变ahp,关于PHP字符串的一道面试题
  9. php 返回数组元素函数_php array_values 返回数组的所有值详解及实例
  10. 3. 从零开始学CSRF
  11. Python学习之==装饰器
  12. mysql 5.6 二进制安装包_centos6上mysql5.6二进制包安装
  13. c语言c99标准_C语言的三套标准:C89、C99和C11
  14. avx指令+openmp多线程实现一个基本算法作业 c++
  15. 微信开发者工具保存的时候,提示权限不足,选择以管理员的身份重试个人解决方法
  16. 转:我的创业梦想,一个关于照片的网站
  17. 机器人视觉测量与控制
  18. 分享暄桐好作业之《临〈岁朝清供图〉》
  19. 我所知道的专业搜索引擎
  20. 5-3 外星人颜色#1

热门文章

  1. 梦里什么都有(状压DP)
  2. mixin的使用方法
  3. 计算机怎么查询隐藏的字体,Win10怎么隐藏不使用的字体?隐藏字体的方法
  4. 计算机毕设(附源码)JAVA-SSM基于云服务器网上论坛设计
  5. svn设置 修改服务器,svn设置 修改服务器ip地址
  6. 鸿蒙圣墟如何升级快,鸿蒙圣墟华为版
  7. win10给鼠标右键添加快捷功能
  8. Win10删除|修改鼠标右键快捷键快捷菜单的操作
  9. GAN-GP(Gradient Penalty)
  10. 对Request.parameter中参数进行添加或修改