IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【Python实用技巧】如何将Python脚本打包成exe可执行文件? -> 正文阅读

[开发工具]【Python实用技巧】如何将Python脚本打包成exe可执行文件?

相信大家也有过这样的困惑,本来已经使用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 ...')

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


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

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

pip install pyinstaller

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

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

pyinstaller.exe --help

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

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

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

PS Z:\win_share_workspace\test_share\test_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_workspace\test_share\test_python2exe\running.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:\users\redtea\appdata\local\programs\python\python37\python.exe
18942 INFO: Analyzing Z:\win_share_workspace\test_share\test_python2exe\running.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:\users\redtea\appdata\local\programs\python\python37\python37.dll
22600 INFO: Found binding redirects:
[]
22748 INFO: Warnings written to Z:\win_share_workspace\test_share\test_python2exe\build\running\warn-running.txt
23472 INFO: Graph cross-reference written to Z:\win_share_workspace\test_share\test_python2exe\build\running\xref-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_workspace\test_share\test_python2exe\build\running\PYZ-00.pyz
26078 INFO: Building PYZ (ZlibArchive) Z:\win_share_workspace\test_share\test_python2exe\build\running\PYZ-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:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\bootloader\Windows-64bit\run.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_workspace\test_share\test_python2exe\build\running\run.exe.z10cqb8f
54272 INFO: Updating resource type 24 name 1 language 0
56760 INFO: Appending archive to EXE Z:\win_share_workspace\test_share\test_python2exe\dist\running.exe
155327 INFO: Building EXE from EXE-00.toc completed successfully.

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

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


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

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

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:13:53  更:2021-09-05 11:15:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 7:00:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码