怎么把Python脚本打包成可执行程序?

简介: 最近根据用户提的需求用python做了一个小工具,但是在给客户使用的时候不能直接发送python文件,毕竟让客户去安装python环境,那就离了大谱了。所以这时候就需要把多个py文件带着运行环境打包成EXE可执行文件。

需求分析

最近根据用户提的需求用python做了一个小工具,但是在给客户使用的时候不能直接发送python文件,毕竟让客户去安装python环境,那就离了大谱了。所以这时候就需要把多个py文件带着运行环境打包成EXE可执行文件

技术实现

这里以window为例,Mac是同样的道理。

一、检测脚本是否正常

1、确保电脑上已经安装好 python,并且已经配置好了运行环境。

2、使用Windows键 + R 打开运行窗口,然后输入cmd并按Enter键,或者在开始菜单中搜索“命令提示符”并打开。

3、使用cd命令切换到存储Python脚本的目录。例如,如果脚本在 C:\Users\xiaodou\Documents 下,你可以输入以下命令:

cd C:\Users\xiaodou\Documents

4、在命令提示符中,输入以下命令运行你的Python脚本,测试脚本是否能正常执行:

python main.py

二、打包单个文件

1、 安装 PyInstaller: 在命令行中运行以下命令安装 PyInstaller:

pip install pyinstaller

2、使用 PyInstaller 打包程序: 在命令行中,进入Python 文件的目录,然后运行以下命令:

pyinstaller --onefile main.py

这个命令将创建一个名为 dist 的目录,这里面会包含了一个独立的.exe可执行文件。main.py 中的所有依赖项将被打包到这个可执行文件中。

  • --onefile:它指定将所有程序文件和依赖项打包成一个单独的可执行文件。这意味着生成的可执行文件包含了你的主程序文件以及所有依赖的模块和库,使得你只需分发一个文件,而不是多个文件。


3、找到生成的可执行文件: 在 dist 目录中找到生成的可执行文件。这个文件的名称通常与你的主程序文件(main.py)相同,例如,main.exe。


4、 将可执行文件拷贝到目标计算机: 将生成的可执行文件拷贝到目标计算机上,然后在目标计算机上运行它。由于这是一个独立的可执行文件,不需要安装 Python 环境,可以在没有 Python 的情况下直接运行。

常见问题

一、如何去除运行时弹出的命令行窗口

这个程序在window系统上执行的时候,会有个命令行弹框,这时候如何把命令行弹框去掉呢?


1、使用--noconsole 选项(建议)

在使用PyInstaller打包时,你可以使用--noconsole选项,它会告诉PyInstaller在Windows上创建一个窗体应用程序而不是控制台应用程序。这样就不会显示命令行窗口。

pyinstaller --onefile --noconsole main.py

2、在脚本中隐藏窗口(只在Windows上有效)

如果你的程序是一个图形界面应用程序,你可以在你的main.py中加入代码来隐藏命令行窗口。这通常需要使用ctypes库,例如:

import ctypes
ctypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 0)

二、指定可执行文件的icon图标

如果我们修改程序的图标和显示图标,可以按照下面的步骤操作:

1、准备一个.ico格式的图标文件,放在py文件的同级目录下。

2、在运行 PyInstaller 命令时,可以通过 --icon 选项指定图标文件,这个图标将用于生成的可执行文件的显示图标和窗口图标。例如:

pyinstaller --onefile --noconsole --icon=xiaodou.ico main.py

注意事项:

  • 图标文件通常使用.ico格式。
  • 确保指定的图标文件是有效的,否则可能导致PyInstaller命令失败。
  • 一些窗体库(例如tkinter)可能需要特殊处理来设置程序窗口的图标。在这种情况下,你可能需要在程序代码中设置图标。
相关文章
|
2天前
|
运维 监控 API
自动化运维实践指南:Python脚本优化服务器管理任务
本文探讨了Python在自动化运维中的应用,介绍了使用Python脚本优化服务器管理的四个关键步骤:1) 安装必备库如paramiko、psutil和requests;2) 使用paramiko进行远程命令执行;3) 利用psutil监控系统资源;4) 结合requests自动化软件部署。这些示例展示了Python如何提升运维效率和系统稳定性。
|
3天前
|
存储 Linux Docker
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?
|
3天前
|
Python 索引
【Python字符串攻略】:玩转文字,编织程序的叙事艺术
【Python字符串攻略】:玩转文字,编织程序的叙事艺术
|
3天前
|
Python 存储 数据处理
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
【Python数据类型的奥秘】:构建程序基石,驾驭信息之海
|
3天前
|
XML 数据格式 Python
Python零基础入门-1 从一行代码开始运行Python程序(续)
Python零基础入门-1 从一行代码开始运行Python程序(续)
|
3天前
|
测试技术 Python
Python零基础入门-1 从一行代码开始运行Python程序
Python零基础入门-1 从一行代码开始运行Python程序
|
4天前
|
Go Python
go语言调用python脚本
go语言调用python脚本
8 0
|
4天前
|
存储 区块链 Python
怎么把Python脚本打包成可执行程序?
【6月更文挑战第3天】最近根据用户提的需求用python做了一个小工具,但是在给客户使用的时候不能直接发送python文件,毕竟让客户去安装python环境,那就离了大谱了。所以这时候就需要把多个py文件带着运行环境打包成EXE可执行文件。
9 1
|
17天前
|
Python Windows
一步步教你将包含其他文件的 Python 脚本等打包成 EXE
最近我编写了一个Python脚本,该脚本需要依赖两个同级目录下的文件才能正常运行。然而,当我将脚本打包成EXE程序后,必须将这两个文件放在EXE文件的同级目录下才能正常执行。为了简化部署,我希望能将这两个文件一起打包到EXE文件中,这时候该怎么办呢?
|
1月前
|
Python
python脚本打包成可执行文件(pyinstaller)
python脚本打包成可执行文件(pyinstaller)