目录
Freezing Your Code
安装PyInstaller
使用PyInstaller
PyInstaller的原理简介
首页 后端开发 Python教程 如何将Python脚本打包成可执行文件?(详细)

如何将Python脚本打包成可执行文件?(详细)

Sep 27, 2018 pm 03:30 PM
蟒蛇脚本

本篇文章给大家带来的内容是关于如何将Python脚本打包成可执行文件?(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

Python是一个脚本语言,被解释器解释执行。它的发布方式:

  • .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的)

  • .pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。

  • 可执行文件:对于非码农用户或者一些小白用户,你让他装个Python同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉Ta即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows,Linux,Mac,...)。

本文主要就是介绍最后一种方式,.py和.pyc都比较简单,Python本身就可以搞定。将Python脚本打包成可执行文件有多种方式,本文重点介绍PyInstaller,其它仅作比较和参考。

Freezing Your Code

各种打包工具的对比如下(来自文章Freezing Your Code):

Solution Windows Linux OS X Python 3 License One-file mode Zipfile import Eggs pkg_resources support
bbFreeze yes yes yes no MIT no yes yes yes
py2exe yes no no yes MIT yes yes no no
pyInstaller yes yes yes no GPL yes no yes no
cx_Freeze yes yes yes yes PSF no yes yes no
py2app no no yes yes MIT no yes yes yes

PS.其中pyInstaller和cx_Freeze都是不错的,stackoverflow上也有人建议用cx_Freeze,说是更便捷些。pkg_resources新版的pyInstaller貌似是支持的。

安装PyInstaller

对于那些网络比较稳定,能够流畅使用pip源地址的用户,直接下面的命令就可以搞定:

pip install pyinstaller
登录后复制

通常我们会下载源码包,然后进入包目录,执行下面的命令(需要安装setuptools):

python setup.py install
登录后复制

安装完后,检查安装成功与否:

pyinstaller --version
登录后复制

安装成功后,就可以使用下面的命令了:

  • pyinstaller : 打包可执行文件的主要命令,详细用法下面会介绍。

  • pyi-archive_viewer : 查看可执行包里面的文件列表。

  • pyi-bindepend : 查看可执行文件依赖的动态库(.so或.dll文件)

  • pyi-... : 等等。

使用PyInstaller

pyinstaller的语法:

pyinstaller [options] script [script ...] | specfile
登录后复制

最简单的用法,在和myscript.py同目录下执行命令:

pyinstaller mycript.py
登录后复制

然后会看到新增加了两个目录build和dist,dist下面的文件就是可以发布的可执行文件,对于上面的命令你会发现dist目录下面有一堆文件,各种都动态库文件和myscrip可执行文件。有时这样感觉比较麻烦,需要打包dist下面的所有东西才能发布,万一丢掉一个动态库就无法运行了,好在pyInstaller支持单文件模式,只需要执行:

pyinstaller -F mycript.py
登录后复制

你会发现dist下面只有一个可执行文件,这个单文件就可以发布了,可以运行在你正在使用的操作系统类似的系统的下面。

当然,pyinstaller还有各种选项,有通用选项,如-d选项用于debug,了解pyInstaller执行的过程;还有一些针对不同平台的选项,具体用法可以访问PyInstaller官方WIKI。

在执行pyInstaller命令的时候,会在和脚本相同目录下,生成一个.spec文件,该文件会告诉pyinstaller如何处理你的所有脚本,同时包含了命令选项。一般我们不用去理会这个文件,若需要打包数据文件,或者给打包的二进制增加一些Python的运行时选项时...一些高级打包选项时,需要手动编辑.spec文件。可以使用:

pyi-makespec options script [script ...]
登录后复制

创建一个.spec文件,对于手动编辑的.spec文件,我们可以使用下面任意一条命令:

pyinstaller specfile
pyi-build specfile
登录后复制

PyInstaller的原理简介

PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,和编译成真正的机器码完全是两回事,所以千万不要指望成打包成一个可执行文件会提高运行效率,相反可能会降低运行效率,好处就是在运行者的机器上不用安装python和你的脚本依赖的库。在Linux操作系统下,它主要用的binutil工具包里面的lddobjdump命令。

PyInstaller输入你指定的的脚本,首先分析脚本所依赖的其他脚本,然后去查找,复制,把所有相关的脚本收集起来,包括Python解析器,然后把这些文件放在一个目录下,或者打包进一个可执行文件里面。

可以直接发布输出的整个文件夹里面的文件,或者生成的可执行文件。你只需要告诉用户,你的应用App是自我包含的,不需要安装其他包,或某个版本的Python,就可以直接运行了。

需要注意的是,PyInstaller打包的执行文件,只能在和打包机器系统同样的环境下。也就是说,不具备可移植性,若需要在不同系统上运行,就必须针对该平台进行打包。

以上是如何将Python脚本打包成可执行文件?(详细)的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用pyjokes创建随机笑话的Python脚本 使用pyjokes创建随机笑话的Python脚本 Sep 13, 2023 pm 08:25 PM

您想为您的Python脚本或应用程序添加一些幽默吗?无论您是构建聊天机器人、开发命令行工具,还是只是想用随机笑话自娱自乐,pyjokes库都可以为您提供帮助。借助pyjokes,您可以轻松生成各种类别的笑话,并根据您的喜好进行自定义。在这篇博文中,我们将探讨如何使用pyjokes库在Python中创建随机笑话。我们将介绍安装过程、生成不同类别的笑话、自定义笑话、在控制台应用程序或网页中显示它们,以及处理可能发生的任何潜在错误。安装pyjokes在我们开始使用pyjokes创建随机笑话之前,我们需

crontab定时任务不执行的一些原因,你知道吗? crontab定时任务不执行的一些原因,你知道吗? Mar 09, 2024 am 09:49 AM

crontab定时任务不执行的一些缘由总结更新时间:2019年01月09日09:34:57作者:田野上的希望这篇文章主要给你们总结介绍了关于crontab定时任务不执行的一些缘由,对每种可能发生的诱因都给出了解决方式,对遇见这个问题的同事们具有一定的参考学习价值,须要的同学们下边随着小编来一起学习学习吧序言近来在工作中遇见了一些问题,crontab定时任务竟然不执行,后来我在网上找的时侯发觉网上主要说了这5个诱因:1crond服务未启动crontab不是Linux内核的功能,而是依赖一个cron

Python脚本自动刷新Excel电子表格 Python脚本自动刷新Excel电子表格 Sep 09, 2023 pm 06:21 PM

Python和Excel是两个强大的工具,结合起来可以开启自动化世界。Python具有多功能的库和用户友好的语法,使我们能够编写脚本来有效地执行各种任务。另一方面,Excel是一种广泛使用的电子表格程序,它为数据分析和操作提供了熟悉的界面。在本教程中,我们将探索如何利用Python来自动化刷新Excel电子表格的过程,从而节省我们的时间和精力。您是否发现自己花费了宝贵的时间使用更新的数据手动刷新Excel电子表格?这是一项重复且耗时的任务,可能会真正降低生产力。在本文中,我们将指导您完成使用Py

探秘Orange3:打开数据挖掘与机器学习新世界! 探秘Orange3:打开数据挖掘与机器学习新世界! Mar 04, 2024 pm 08:16 PM

Orange3是一个功能强大的开源数据可视化和机器学习工具,它具备丰富的数据处理、分析和建模功能,为用户提供了简单快捷的数据挖掘和机器学习解决方案。本文将简要介绍Orange3的基本功能和使用方法,同时结合实际应用场景和Python代码案例,帮助读者更好地掌握Orange3的使用技巧。Orange3的基本功能包括数据加载、数据预处理、特征选择、模型建立和评估等。用户可以利用直观的界面拖放组件,轻松构建数据流程。同时,通过Python脚本,也能完成更复杂的数据处理和建模任务。下面我们将通过一个实际

PyCharm高级教程:利用PyInstaller将代码打包为EXE格式 PyCharm高级教程:利用PyInstaller将代码打包为EXE格式 Feb 20, 2024 am 09:34 AM

PyCharm是一款功能强大的Python集成开发环境,提供了丰富的功能和工具来帮助开发者提高效率。其中,PyInstaller是一个常用的工具,可以将Python代码打包为可执行文件(EXE格式),方便在没有Python环境的机器上运行。在本篇文章中,我们将介绍如何在PyCharm中使用PyInstaller将Python代码打包为EXE格式,并提供具体的

用于监控网站变化的Python脚本 用于监控网站变化的Python脚本 Aug 29, 2023 pm 12:25 PM

在当今的数字时代,了解网站上的最新变化对于各种目的都至关重要,例如跟踪竞争对手网站上的更新、监控产品可用性或随时了解重要信息。手动检查网站是否有更改可能既耗时又低效。这就是自动化发挥作用的地方。在这篇博文中,我们将探讨如何创建Python脚本来监控网站更改。通过利用Python的强大功能和一些方便的库,我们可以自动化检索网站内容、与以前的版本进行比较并通知我们任何更改的过程。这使我们能够保持主动并及时对我们监控的网站上的更新或修改做出反应。设置环境在开始编写脚本来监控网站更改之前,我们需要设置P

python怎么重复字符串_python重复字符串教程 python怎么重复字符串_python重复字符串教程 Apr 02, 2024 pm 03:58 PM

1、首先打开pycharm,进入到pycharm主页。2、然后新建python脚本,右键--点击new--点击pythonfile。3、输入一段字符串,代码:s="-"。4、接着需要把字符串里面的符号重复20次,代码:s1=s*20。5、输入打印输出代码,代码:print(s1)。6、最后运行脚本,在最底部会看到我们的返回值:-就重复了20次。

pycharm怎么读取excel数据 pycharm怎么读取excel数据 Apr 03, 2024 pm 08:42 PM

如何使用PyCharm读取Excel数据?步骤如下:安装openpyxl库;导入openpyxl库;加载Excel工作簿;访问特定工作表;访问工作表中的单元格;遍历行和列。

See all articles