使用PyInstaller创建Python可执行文件
off999 2024-10-09 13:53 21 浏览 0 评论
您已经花费时间创建了一个 Python 应用程序,您希望使用它或将其分发。
译自 How to Create a Python Executable File With PyInstaller,作者 Jack Wallen。
您已经花费时间创建了一个 Python 应用程序,您希望使用它或将其分发给可以从其强大功能中受益的人。您可能认为唯一的方法是将代码发送给他们,确保他们在机器上安装了 Python(以及代码所需的任何依赖项),并指示他们使用命令 python3 appname.py 运行代码。
当然,这可以工作,但并不高效。如果您与可能不太了解 Python 的人共享应用程序,这可能会很麻烦。或者,即使他们了解 Python,您肯定也不希望将代码发送给他们并期望他们从命令行运行它。
相反,为什么不从您的 Python 代码 创建一个可执行文件,这样用户只需双击它即可运行应用程序,或者将文件复制到其 $PATH 中的目录并从文件系统层次结构中的任何位置运行命令。
这就是我今天要向您展示如何做的事情。我们将使用我们之前创建的 Python 应用程序的代码(用于获取用户的输入并使用 GUI 将其写入文件)并从中创建一个方便的可执行文件。
这是一种从 Python 代码创建便携式应用程序的好方法。目标机器唯一的要求是安装 Python(这是一个相当容易克服的障碍)。
好的,让我们开始吧。
您需要什么
要使此方法有效,您需要一台安装了 Python 的机器以及我们上次创建的示例代码。我会在这里添加代码,这样您就不必搜索它。我将在 Ubuntu 22.04 上演示此方法,但该过程适用于任何 Linux 发行版(或任何支持 Python 的操作系统)。如果您使用的是其他发行版或操作系统,则需要相应地调整 Pip 安装过程。
安装 Pip
要安装 PyInstaller,您必须首先确保安装了 Pip(Python 包管理器)。您可以使用以下命令检查 Pip 是否已安装:
如果您在控制台中看到版本号,则说明您已准备好。如果您收到错误,则需要安装 Pip,这可以通过以下命令完成:
sudo apt-get install python3-pip -y
当上述命令完成后,您就可以继续了。
接下来,我们需要安装 PyInstaller,它会读取您的 Python 代码,发现您的应用程序运行所需的每个模块和库,收集所有必要的东西(包括 Python 解释器),并将它们与您的代码组合成一个单独的文件夹或一个单独的可执行文件。
要安装 PyInstaller,请执行以下命令:
就是这样。您已准备好。
将所有内容捆绑在一起
我将首先向您展示如何使用 PyInstaller 为您的应用程序创建捆绑包。所有这些都将包含在一个文件夹中,其中包含一个可执行文件和一个包含依赖项的文件夹。
请记住,我们用于输入 GUI 的代码如下所示:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout
class UserInputApp(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle('User Input App')
self.setGeometry(100, 100, 400, 200)
self.label = QLabel('Enter text:')
self.text_input = QLineEdit()
self.save_button = QPushButton('Save to File')
self.save_button.clicked.connect(self.save_to_file)
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(self.text_input)
layout.addWidget(self.save_button)
self.setLayout(layout)
def save_to_file(self):
text = self.text_input.text()
with open('user_input.txt', 'a+') as file:
file.write(text + '\n')
print('Text saved to file.')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = UserInputApp()
window.show()
sys.exit(app.exec_())
让我们使用以下命令创建一个新目录:
使用以下命令更改到该目录:
使用以下命令创建 Python 文件:
将上面的代码粘贴到该文件中,然后保存/关闭它。然后,您可以使用以下命令创建捆绑文件夹:
当命令完成后,使用以下命令更改到 dist 目录:
在这个文件夹中,你会找到一个名为 input 的子文件夹,其中包含可执行文件,以及一个名为 _internal 的文件夹。使用 cd input 命令进入 input 文件夹,然后你可以使用以下命令运行你的应用程序:
./input
输入 GUI 将会打开,你可以使用该应用程序。
如果你想以这种方式分发应用程序,你需要将 INPUT_APP/dist/input 文件夹复制给任何需要它的人,他们就可以像你一样运行它(只要他们的机器上安装了 Python)。
有一个更简单的方法。
创建单个文件可执行文件
最好的方法是使用 PyInstaller 创建单个文件可执行文件。这里唯一的区别是你在(INPUT_APP 文件夹内)运行的命令,它是:
pyinstaller –noconsole –onefile input.py
–noconsole 选项指示 PyInstaller 抑制应用程序启动时不可避免地打开的终端窗口,而 –onefile 则告诉 PyInstaller 创建单个文件可执行文件。
当此命令完成时,你将在 dist/input 目录中找到单个文件可执行文件。然后,你可以将该文件复制到你的 $PATH 中的目录(例如 /usr/local/bin)或复制给任何需要该应用程序的人。
这就是从 Python 代码创建可执行文件的所有步骤。使用这种便捷的方法,你的应用程序不仅更容易运行,而且更容易分发给其他用户。
相关推荐
- 大文件传不动?WinRAR/7-Zip 入门到高手,这 5 个技巧让你效率翻倍
-
“这200张照片怎么传给女儿?微信发不了,邮箱附件又超限……”62岁的张阿姨对着电脑犯愁时,儿子只用了3分钟就把照片压缩成一个文件,还教她:“以后用压缩软件,比打包行李还方便!”职场人更懂这...
- 电脑解压缩软件推荐——7-Zip:免费、高效、简洁的文件管理神器
-
在日常工作中,我们经常需要处理压缩文件。无论是下载软件包、接收文件,还是存储大量数据,压缩和解压缩文件都成为了我们日常操作的一部分。而说到压缩解压软件,7-Zip绝对是一个不可忽视的名字。今天,我就来...
- 设置了加密密码zip文件要如何打开?这几个方法可以试试~
-
Zip是一种常见的压缩格式文件,文件还可以设置密码保护。那设置了密码的Zip文件要如何打开呢?不清楚的小伙伴一起来看看吧。当我们知道密码想要打开带密码的Zip文件,我们需要用到适用于Zip格式的解压缩...
- 大文件想要传输成功,怎么把ZIP文件分卷压缩
-
不知道各位小伙伴有没有这样的烦恼,发送很大很大的压缩包会受到限制,为此,想要在压缩过程中将文件拆分为几个压缩包并且同时为所有压缩包设置加密应该如何设置?方法一:使用7-Zip免费且强大的文件管理工具7...
- 高效处理 RAR 分卷压缩包:合并解压操作全攻略
-
在文件传输和存储过程中,当遇到大文件时,我们常常会使用分卷压缩的方式将其拆分成多个较小的压缩包,方便存储和传输。RAR作为一种常见的压缩格式,分卷压缩包的使用频率也很高。但很多人在拿到RAR分卷...
- 2个方法教你如何删除ZIP压缩包密码
-
zip压缩包设置了加密密码,每次解压文件都需要输入密码才能够顺利解压出文件,当压缩包文件不再需要加密的时候,大家肯定想删除压缩包密码,或是忘记了压缩包密码,想要通过删除操作将压缩包密码删除,就能够顺利...
- 速转!漏洞预警丨压缩软件Winrar目录穿越漏洞
-
WinRAR是一款功能强大的压缩包管理器,它是档案工具RAR在Windows环境下的图形界面。该软件可用于备份数据,缩减电子邮件附件的大小,解压缩从Internet上下载的RAR、ZIP及其它类...
- 文件解压方法和工具分享_文件解压工具下载
-
压缩文件减少文件大小,降低文件失效的概率,总得来说好处很多。所以很多文件我们下载下来都是压缩软件,很多小伙伴不知道怎么解压,或者不知道什么工具更好,所以今天做了文件解压方法和工具的分享给大家。一、解压...
- [python]《Python编程快速上手:让繁琐工作自动化》学习笔记3
-
1.组织文件笔记(第9章)(代码下载)1.1文件与文件路径通过importshutil调用shutil模块操作目录,shutil模块能够在Python程序中实现文件复制、移动、改名和删除;同时...
- Python内置tarfile模块:读写 tar 归档文件详解
-
一、学习目标1.1学习目标掌握Python内置模块tarfile的核心功能,包括:理解tar归档文件的原理与常见压缩格式(gzip/bz2/lzma)掌握tar文件的读写操作(创建、解压、查看、过滤...
- 使用python展开tar包_python拓展
-
类Unix的系统,打包文件经常使用的就是tar包,结合zip工具,可以方便的打包并解压。在python的标准库里面有tarfile库,可以方便实现生成了展开tar包。使用这个库最大的好处,可能就在于不...
- 银狐钓鱼再升级:白文件脚本化实现GO语言后门持久驻留
-
近期,火绒威胁情报中心监测到一批相对更为活跃的“银狐”系列变种木马。火绒安全工程师第一时间获取样本并进行分析。分析发现,该样本通过阿里云存储桶下发恶意文件,采用AppDomainManager进行白利...
- ZIP文件怎么打开?2个简单方法教你轻松搞定!
-
在日常工作和生活中,我们经常会遇到各种压缩文件,其中最常见的格式之一就是ZIP。ZIP文件通过压缩数据来减少文件大小,方便我们进行存储和传输。然而,对于初学者来说,如何打开ZIP文件可能会成为一个小小...
- Ubuntu—解压多个zip压缩文件.zip .z01 .z02
-
方法将所有zip文件放在同一目录中:zip_file.z01,zip_file.z02,zip_file.z03,...,zip_file.zip。在Zip3.0版本及以上,使用下列命令:将所有zi...
- 如何使用7-Zip对文件进行加密压缩
-
7-Zip是一款开源的文件归档工具,支持多种压缩格式,并提供了对压缩文件进行加密的功能。使用7-Zip可以轻松创建和解压.7z、.zip等格式的压缩文件,并且可以通过设置密码来保护压缩包中的...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)