标签: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社群下载。
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方便地提供了一些非常酷的命令行输入参数,我们可以使用它们。
现在,回到“dist”文件夹,我们有了一个漂亮而专业的Python应用程序,几乎可以在任何计算机上运行,无论是否安装了Python。
注:本文学习整理自pythoninoffice.com。