前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >封装Python代码:如何在未安装Python的情况下运行Python脚本

封装Python代码:如何在未安装Python的情况下运行Python脚本

作者头像
fanjy
发布2022-11-16 13:15:29
2.8K0
发布2022-11-16 13:15:29
举报
文章被收录于专栏:完美Excel

标签:Python,Pyinstaller

你知道吗?你可以封装你的python代码,并提供给其他人去运行,即便他们没有安装python。可以像计算机(Windows、Mac或Linux)上的任何程序/应用程序一样运行脚本,无需Python,无需安装库。

在某些时候,可能希望将你的Python脚本提供给其他人在他们的机器上运行。然而,一个常见的问题是,不是每个人都知道Python或者安装了Python。封装是指通过将Python解释器、代码及其所有依赖项捆绑在一起来创建单个可执行文件的过程。最终的结果是,其他人可以在不安装Python解释器或任何模块的情况下运行该文件。

使用Pyinstaller封装Python代码

Pyinstaller是一个Python库,可以为你封装Python脚本,并且非常易于使用。根据官方描述:

PyInstaller读取你编写的Python脚本,分析你的代码,以发现脚本执行所需的所有其他模块和库。然后,它收集所有这些文件的副本,包括活动的Python解释器并将它们与脚本一起放在单个文件夹中,或者选择地放在单个可执行文件中。

通过pip安装PyInstaller:

pip install pyinstaller

先给出一段Python代码,这段代码在其他文章中有详细讲解(参见:使用Python pandas Groupby函数汇总数据,获得对数据更好地理解),这里集中于pyinstaller。注:代码中的示例文件cc_statement.csv可在知识星球完美Excel社群下载。

代码语言:javascript
复制
import pandas as pd
df = pd.read_csv(r'D:\cc_statement.csv',parse_dates=['Transaction Date'])
df['Transaction Date'] =pd.to_datetime(df['Transaction Date'])
df['Day'] = df['TransactionDate'].dt.day_name()
df['Month'] = df['TransactionDate'].dt.month
spend_category = df.groupby('Category').agg(Total_spend=('Debit','sum'),Avg_spend=('Debit','mean'))
spend_category.to_excel(r'D:\spend_by_category.xlsx')

我们主要尝试分析我们的信用卡账单,并生成一个汇总表,列出每个类别的总支出和平均支出。数据来源是一个模拟的信用卡对账单,在2020年有533笔交易。输出是一个只有14行2列的数据框架。

现在,我们准备封装我们的代码。

在命令提示窗口中,键入pyinstaller freeze_eg.py。”freeze_eg.py”是你要封装的脚本名称,因此必须将其更改为你的文件名。

封装完成后,将在工作目录中看到几个新文件夹,进入“dist”文件夹并找到与脚本同名的应用程序文件,在本例中是“freeze_eg”。

图1

双击运行该应用程序,将看到该应用程序刚刚在你的工作目录中生成了一个名为“spend_by_category.xlsx”的Excel文件。

运行应用程序所需的一切都在“dist”文件夹中,这样我们就可以删除其他额外的文件夹和文件,我们只需将dist文件夹发送给其他人,他们就可以运行我们的Python应用程序。然而,该文件夹仍然包含大量文件,其他人可能会混淆要运行哪个文件。pyinstaller方便地提供了一些非常酷的命令行输入参数,我们可以使用它们。

  • 要将Python代码封装到单个文件中,使用--onefile参数
  • 要向应用程序添加图标,使用--icon参数。

现在,回到“dist”文件夹,我们有了一个漂亮而专业的Python应用程序,几乎可以在任何计算机上运行,无论是否安装了Python。

注:本文学习整理自pythoninoffice.com。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档