如何轻松把python源码文件打包成可执行程序

我们学习代码的时候,会感觉和平常用的软件直接点开的太不一样了,那怎么才能把代码变成点exe像平时双击就能打开使用呢。

代码插图

平时我们不停学习代码也非常鼓噪,把学的东西和使用联系在一起,目的明确,自然也就多了一些兴趣、味道。

今天我就来介绍一种简单的方法,当然方法很多种,先学一种是一种。

我们从现在有一个完整的python文件,可以在编辑软件中正常运行。

这个文件代码都是直接可以看到的,我们平时用的软件都是可执行的exe程序,看不到啥代码的,有的时候,我们也想这么做,但是一些工程做的很复杂,一下子我还弄不出来,那我们如何变成EXE程序呢?

感兴趣的同学,可以听我讲讲。

我把操作种知识以外的一些细节都说清楚,或许可以帮助大家少走些弯路,自己操作的时候少卡壳,少一些摸不着头脑的时候。

言归正传,下面我把这个test-1.py文件直接放到Scrits 里面,为了是简化一些操作,方便大家上手,不要把目录放的太深,研究代码弄成研究路劲去了,对于很多新手来讲,很多类似的这样事情往往经常会卡壳,有的会卡很长时间,很是烦,消化了不少时间。我们直截了当地去做成了一件事情,主要任务完成了,后面可以慢慢的自己去细化加强。

源文件放的位置

通常,我们可以用pyinstaller -F test-1.py 在电脑中用CMD中执行就可以打包了。

但是呢报错了下图:

执行关键语句

不能执行,这可咋办。到底这样可不可以,还是自己没搞清楚呢。

但是对于我们刚开始学习的来讲,明明书本上讲的很简单,为什么我就执行不出来,当然你后面熟悉了就知道为什么了,但是在开始学习的时候就很纳闷,还不好整。

查了下资料说,少环境,那我们就去安装环境。

pip.exe insta11pyinstaller

也报错误,感觉没法整了,是不是电脑没有安装好python呢。总感觉自己哪里没弄对,为什么别人的电脑就可以呢。

安装关键环境

从这里我们应该能想到,不能仅仅学习代码,如何使用环境的方式也应该去玩玩,熟悉掌握下。当然代码是重要的内容部分,需要重点学习。你在人家搭配好的电脑里去执行命令,倒是很方便,你很难发现一些错误,然以后自己做的时候就经常报错,可能会慌手慌脚。

下面是路径不对,。

另外也会因为路劲问题,导致找不到文件,我们就把他放到根目录下就会少很多麻烦,路劲问题后面有的时间去慢慢熟悉,先把整个问题弄清楚是关键。我的电脑配置过环境直接执行就不会报错之类的。如下

找不到你要执行的文件图示1

找不到你要执行的文件图示2

我们同样用CMD,打开不直接执行,我们用CD进入到python目录里面去看看

找到PYTHON安装位置

我安装目录是 C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38\\Scripts 每个人安装的位置是不一样的,哪怕是默认的情况下,你的用户名和我的用户名都不一样的。

有很多人,开始学的时候,找不到自己的文件放那里了:我安装的时候,选择了一个路劲,也有可能默认下一步,下一步安装的,那还记得。找起来非常费劲

那么我们可以尝试window带的搜索功能,找到文件在哪里。

有的不知道安装到哪里的,你就可以用window的搜索功能去找,百度也不知道你电脑的用户名的,还是自己探索的好,反正你电脑安装了就能找到,找不到没有就去安装就可以。

Windows搜索文件方法

我们打开CMD ,用CD命令进入Scripts文件中,如下图

进去文件目录

现在我们执行pip.exe install pyinstaller 测试下

安装pyinstaller 图示

在安装,说明可以用,有很多情况下就是运行不了的,需要不断研究和摸索熟练起来。原来不是电脑上安装了就可以直接执行的,要有对应的工具才能执行的。

安装好了还需要配置path系统环境。

如下出,找到计算机属性,依次打开高级系统设置,点击高级,如下图

配置系统环境

把你的python的路劲填进去

配置系统环境图示

把安装的路劲搜索出来 复制过来点编辑再确定保存就保存了。

现在安装好了,我有点迫不及待去执行下看,现在能不能直接把它变成EXE文件了。

然后我们就可以去打包了,执行下pyinstaller -F test-1.py,

打包文件过程图示

等待执行完成出现successfully 字样 ,说明你们执行成功了。

我们去找下文件,记得还在刚找的安装目录下dist文件中生成了test-1.exe文件,如下图

里面也显示了打包文件在的位置:3527 INFO: Copying bootloader EXE to C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python38\\Scripts\\dist\\test-1.exe

打包成功图示

很明显这个py文件变成了EXE文件了,我们打开dist文件夹看看。

生出的文件

里面果真多了一个程序,测试下执行怎么样,看能不能正常。

打开程序默认的显示后面

输入姓名后的图示

正常运行了。当然要显示什么样的画面,取决你的源码设计的是什么样的,你也可以把画面设置的美观点,可以搞搞游戏代码,简单的这样打包下,就可以玩玩也不错。

希望大家学习的时候,以小见大,举一反三。抓重点,尽量少在在不重要的地方去消耗过多的时间和精灵。

不用灯牌不用币互相关赞都行

将python源代码封装成window可执行程序教程

很多小伙伴不知道怎么将python源码封装成exe可执行程序,以下是作者完整的演示流程,各位小伙伴可以进行参考哦。

  1. 点击键盘win+r打开运行框

2.在运行框中输入cmd,进入到命令行。

3.在命令行中输入pip list 去查看当前电脑中所有的库

4.检查是否有pyinstaller 库 有这个库才能进行封装。

5.如果没有当前库 则在命令行中输入

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

安装即可。

6.在命令行中进入项目文件中 以飞机大战举例

cd C:\\Users\\Monster\\Desktop\\shooter

7.生成spec文件

8.修改生成的spec文件

9.开始制作

10.在文件夹中的dist文件夹中就可以找到生成的内容。

以上就是python文件编程exe可执行文件的全部流程啦,需要的小伙伴,赶紧试一试吧!

keil把源代码生成lib的方法

大家好,我是无际。

最近有学员问我,怎么把我们的程序\”加密\”?

我们一般接触最多的程序文件就是.c和.h为后缀名的文件。

不知道大家有没有看到过.lib为后缀名的文件,这种就是加密的源代码文件。

我们用keil开发工具就可以把我们的.c文件加密成这种.lib文件。

这样能达到以下目的:

  1. 不想让别人看到自己写的源代码,同时又想让他使用你的程序功能。

一般很多芯片原厂就是这样干的,比如说TI的蓝牙和Zigbee协议栈,虽然说是开源的,但是实际上你去看他们底层的代码,很多都是用这种方式加密的。

还有就是一些模块原厂提供模块给方案商用,比如说以前我用汉枫wifi模块的时候,他们核心的代码就是通过这种方式的。

还有就是做电子狗和导航产品的,他们那个地图库是100%加密的。

总结:一般核心技术就会这样去加密,菜鸡程序就不用加了,浪费情怀。

2.加快编译速度,比如说工程比较庞大的时候,如ST固件库,文件很多编译时间需要很长,如果打包成lib库,就能节约不少时间(网上看的,真实性自行考察)。

下面是用keil把我们代码生成.lib的方法,我用我们无际单片机编程的wifi报警主机项目按键功能模块举例。

  1. 建立一个空的工程,把你需要加密的文件添加进去。

把需要生成lib的.c文件添加进来,这我需要把我按键功能模块代码生成lib,所以添加hal_key.c。

2.打开keil的options for Target…设置。

3.选择Output选项,在该选项选择Create Library…lib

然后点ok,重新编译就行了,是不是贼简单?

4.编译没有错误以后,我们在工程目录下找到Objects文件夹。

5.我们可以看到有一个lib文件,就是我们刚刚编译生成的。

不知道大家发现没,怎么生成的名字不是hal_key而是wh01?

这个其实是根据你工程名字生成的,我们手动重命名就可以了。

6.把我们这个lib文件添加到需要用到按键功能的工程文件夹里。

这里需要注意的是,一般要把lib文件和对应.h头文件一起放到对应文件夹里面,别人使用你的函数功能,以及函数有什么参数,就是通过查看.h文件调用的。

通过hal_key.h文件,我大概知道这个源代码提供3个可以提供外部调用的函数。

一个是按键初始化hal_KeyInit(),无返回值,无形参。

一个是按键检测函数hal_KeyProc(),无返回值,无形参。

一个是函数指针注册函数hal_KeyScanCBSRegister。

如果我们需要给别人用的话,不要学我啥注释没有,我们是在视频教程里有讲每个函数的作用。

一定要有点注释,让别人知道怎么调用,有什么条件要求,不然光几个函数别人肯定一脸懵逼。

7.下面,我们就能正常使用hal_key.c的函数功能啦。

同时,别人也看不到你hal_key.c这个文件的源代码了。

最后还想跟大家说几句话。

别看封装lib代码很简单,实际是一门技术活。

主要体现在你的代码移植性写的好不好,如果移植性不好,会直接暴露你的水平。

我就碰到过很多模块厂的工程师封装以后,还需要用到全局变量来传递数据的,这种就是经验不足的人写出来的代码。

封装成lib不是什么技术,怎么能把你的代码封装完以后最小程度干涉别人的代码才是技术。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。