0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【Python】如何将Python脚本打包成exe可执行文件

嵌入式物联网开发 来源:嵌入式物联网开发 作者:嵌入式物联网开发 2022-08-18 12:40 次阅读

相信大家也有过这样的困惑,本来已经使用Python写好了脚本代码,又不想公开代码逻辑,但又要给别人使用这些功能?

这可怎么办呢?

有没有什么办法,可以将Python脚本打包成一个exe文件,这样发布的时候,我只需要提交一个exe文件,别人只要双击打开就能使用我的功能,而我又不需要公开代码,且不一举两得?

答案肯定是有的,请看下文分解。


这里我随意编写了一个Python脚本作为例子来介绍,功能很简单,就是每秒钟输出一个索引值,值是递加1的,代码如下:

import time

index = 1

print('start running')

for index in range(1,1000):
	print(index)
	index = index + 1
	time.sleep(1)

print('stop running ...')
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

使用Python命令行运行的结果如下:


那么我们使用工具把这个Python代码打包成一个exe文件。

这里需要用到一个Python的工具包,交Pyinstaller,我们使用以下命令就可以安装它。

pip install pyinstaller
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

如下所示:(黄色字体提示pip有新版本要更新,可以不用管他)

提示安装成功后,输入下面的命令,有正常输出表示pyinstaller安装成功了。

pyinstaller.exe --help
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

下面我们就开始使用这个工具将python脚本打包成exe文件。

首先,我们进到Python脚本文件所在的目录,如下:(我的是powershell命令行环境)

接着使用命令开始打包Python脚本,交互输出log如下所示:

PS Z:win_share_workspacetest_sharetest_python2exe> pyinstaller.exe -F .running.py
179 INFO: PyInstaller: 4.5.1
180 INFO: Python: 3.7.8
188 INFO: Platform: Windows-10-10.0.19041-SP0
316 INFO: wrote Z:win_share_workspacetest_sharetest_python2exerunning.spec
501 INFO: UPX is not available.
1113 INFO: Extending PYTHONPATH with paths
['Z:\win_share_workspace\test_share\test_python2exe',
 'Z:\win_share_workspace\test_share\test_python2exe']
6010 INFO: checking Analysis
6047 INFO: Building Analysis because Analysis-00.toc is non existent
6048 INFO: Initializing module dependency graph...
6119 INFO: Caching module graph hooks...
6148 INFO: Analyzing base_library.zip ...
13118 INFO: Processing pre-find module path hook distutils from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-distutils.py'.
13120 INFO: distutils: retargeting to non-venv dir 'c:\users\redtea\appdata\local\programs\python\python37\lib'
15205 INFO: Caching module dependency graph...
16314 INFO: running Analysis Analysis-00.toc
16322 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by c:usersredteaappdatalocalprogramspythonpython37python.exe
18942 INFO: Analyzing Z:win_share_workspacetest_sharetest_python2exerunning.py
19151 INFO: Processing module hooks...
19153 INFO: Loading module hook 'hook-difflib.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
19155 INFO: Loading module hook 'hook-distutils.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
19157 INFO: Loading module hook 'hook-encodings.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
20863 INFO: Loading module hook 'hook-heapq.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
20865 INFO: Loading module hook 'hook-pickle.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
20867 INFO: Loading module hook 'hook-sysconfig.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
20869 INFO: Loading module hook 'hook-xml.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
21563 INFO: Looking for ctypes DLLs
21564 INFO: Analyzing run-time hooks ...
21567 INFO: Including run-time hook 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py'
21636 INFO: Including run-time hook 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_inspect.py'
21642 INFO: Looking for dynamic libraries
22600 INFO: Looking for eggs
22600 INFO: Using Python library c:usersredteaappdatalocalprogramspythonpython37python37.dll
22600 INFO: Found binding redirects:
[]
22748 INFO: Warnings written to Z:win_share_workspacetest_sharetest_python2exebuildrunningwarn-running.txt
23472 INFO: Graph cross-reference written to Z:win_share_workspacetest_sharetest_python2exebuildrunningxref-running.html
23842 INFO: checking PYZ
23921 INFO: Building PYZ because PYZ-00.toc is non existent
23921 INFO: Building PYZ (ZlibArchive) Z:win_share_workspacetest_sharetest_python2exebuildrunningPYZ-00.pyz
26078 INFO: Building PYZ (ZlibArchive) Z:win_share_workspacetest_sharetest_python2exebuildrunningPYZ-00.pyz completed successfully.
26806 INFO: checking PKG
26830 INFO: Building PKG because PKG-00.toc is non existent
26830 INFO: Building PKG (CArchive) PKG-00.pkg
48506 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
48830 INFO: Bootloader c:usersredteaappdatalocalprogramspythonpython37libsite-packagesPyInstallerbootloaderWindows-64bitrun.exe
48830 INFO: checking EXE
48912 INFO: Building EXE because EXE-00.toc is non existent
48913 INFO: Building EXE from EXE-00.toc
49652 INFO: Copying icons from ['c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\bootloader\images\icon-console.ico']
50456 INFO: Writing RT_GROUP_ICON 0 resource with 104 bytes
50456 INFO: Writing RT_ICON 1 resource with 3752 bytes
50457 INFO: Writing RT_ICON 2 resource with 2216 bytes
50458 INFO: Writing RT_ICON 3 resource with 1384 bytes
50458 INFO: Writing RT_ICON 4 resource with 37019 bytes
50458 INFO: Writing RT_ICON 5 resource with 9640 bytes
50459 INFO: Writing RT_ICON 6 resource with 4264 bytes
50459 INFO: Writing RT_ICON 7 resource with 1128 bytes
52342 INFO: Updating manifest in Z:win_share_workspacetest_sharetest_python2exebuildrunningrun.exe.z10cqb8f
54272 INFO: Updating resource type 24 name 1 language 0
56760 INFO: Appending archive to EXE Z:win_share_workspacetest_sharetest_python2exedistrunning.exe
155327 INFO: Building EXE from EXE-00.toc completed successfully.
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

看到最后提示successfully,就表示打包成功了。生成的exew文件位于dist目录,我们打开看看。

打包出来的文件还是毕竟大,简单几行代码就达到了6MB,主要是因为它把一些Python的依赖库也打包进来了,所以我们双击就可以运行,运行效果与Python命令行运行一模一样。


好了,本期将Python脚本打包成exe文件的教程到这里就结束了,你学会了吗?

更多实用教程,请关注我的主页,谢谢大家。

​审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • exe
    exe
    +关注

    关注

    0

    文章

    107

    浏览量

    32268
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83468
  • 脚本
    +关注

    关注

    1

    文章

    372

    浏览量

    14636
收藏 人收藏

    评论

    相关推荐

    【实用开发工具】将BAT脚本打包成exe可执行文件

    【实用开发工具】将BAT脚本打包成exe可执行文件
    的头像 发表于 08-21 19:51 2.3w次阅读
    【实用开发工具】将BAT<b class='flag-5'>脚本</b><b class='flag-5'>打包成</b><b class='flag-5'>exe</b><b class='flag-5'>可执行文件</b>

    C语言变成可执行文件的四大步骤

    从C语言变成最终的可执行文件,需要经过四步。
    发表于 10-18 10:37 4381次阅读

    关于Labview生成可执行文件的问题

    各位大侠,想请教下。我把一个VI生成为可执行文件.exe后运行,发现不能正常工作。要先停止了然后再在界面上点“运行”才可以跑起来。这问题叫怎样解决呢。我是想知道我打开可执行文件,它就会自动跑。
    发表于 05-17 15:05

    LabView生成可执行文件EXE

    LabView生成可执行文件EXE时,运行时出现ERROR8,创建暂时的LVSB资源文件是什么意思啊?????
    发表于 04-11 13:45

    【视频分享】如何调试可执行文件

    在LabVIEW中,经常发现可执行文件和源代码执行结果有出入。本视频讲解如何调试可执行文件。在优酷上面看到的关于如何调试可执行文件视频,感觉还是挺受益的,分享给大家!
    发表于 07-20 14:46

    关于生成可执行文件的问题

    生成了一个可执行文件,在打开.exe文件时,出现了如图所示的错误,请问该怎么处理?
    发表于 01-29 16:19

    python文件如何打包成exe可执行文件

    python文件打包成exe可执行文件前言  也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇。
    发表于 07-06 06:34

    如何将Python程序打包exe文件?有哪些步骤

    文章撰写原因我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安装我
    发表于 07-12 08:20

    如何利用Python实现打包exe文件?求过程

    pyton打包成exe命令有哪几个?如何利用Python实现打包exe文件
    发表于 07-12 08:04

    LabVIEW可执行文件作为后台进程运行

    是Application.exe ,其中Application.exe可执行文件的名称。HideRootWindow = True添加到.ini
    发表于 03-18 21:15

    K510跑python的opencv可行吗?打包为linux可执行文件能跑吗?

    想了解一下K510跑python的opencv可行吗?打包为linux可执行文件能跑吗?
    发表于 09-14 09:01

    用MDK生成bin格式的可执行文件

    用MDK 生成bin 文件1用MDK 生成bin 文件Embest 徐良平在RV MDK 中,默认情况下生成*.hex 的可执行文件,但是当我们要生成*.bin 的可执行文件时怎么办呢
    发表于 08-02 10:52 71次下载

    基于LabVIEW的可执行文件调用的研究与实现

    LabVIEW 是美国NI 公司推出的一种基于G 语言的虚拟仪器软件开发工具。在LabVIEW 开发的软件中,用户可能需要调用.exe 可执行文件。本文结合实例详细介绍了三种调用方法:通过Call
    发表于 08-14 11:42 60次下载

    了解在Linux下可执行文件格式

    Linux下面,目标文件、共享对象文件可执行文件都是使用ELF文件格式来存储的。程序经过编译之后会输出目标文件,然后经过链接可以产生
    发表于 05-15 08:49 1771次阅读

    CCES创建可执行文件的操作流程

    本模块将介绍用CrossCore® Embedded Studio (CCES)创建可执行文件的整个流程。涉及的主题包括使用新项目向导、配置系统和工具选项,以及构建过程。
    的头像 发表于 07-11 06:06 3164次阅读