如何把 Python 脚本变成可执行程序?

在Python里,可借助打包工具把脚本转变为独立的可执行程序,无需在目标机器上额外安装Python和依赖库。下面为你介绍几个常用工具及其使用方法:

1. 使用PyInstaller(推荐)

PyInstaller是一款广受欢迎的打包工具,它能够生成单一的可执行文件,并且支持Windows、macOS和Linux系统。

安装
pip install pyinstaller
基本用法
pyinstaller --onefile your_script.py
常用选项
  • --onefile:生成单个可执行文件。
  • --windowed:在Windows或macOS上运行时不显示命令行窗口(适用于GUI程序)。
  • --name:指定输出文件的名称。
  • --icon:为可执行文件设置图标(例如--icon=app.ico)。
示例
pyinstaller --onefile --windowed --name myapp --icon=logo.ico main.py

2. 使用cx_Freeze

cx_Freeze支持多种平台,还能对打包过程进行更多的自定义设置。

安装
pip install cx_Freeze
使用方法

首先,创建一个setup.py文件:

from cx_Freeze import setup, Executable

setup(
    name="MyApp",
    version="1.0",
    description="My Application",
    executables=[Executable("your_script.py", base=None)],
)

然后执行打包命令:

python setup.py build

3. 使用Nuitka

Nuitka是一个Python编译器,它可以将Python代码编译成原生代码,具有较高的执行效率。

安装
pip install nuitka
基本用法
nuitka --onefile your_script.py

注意事项

  • 依赖处理:要保证所有的依赖库都已正确安装,像PyQt、TensorFlow等特殊库可能需要额外的配置。
  • 文件路径问题:打包后的程序在处理文件路径时可能会出现问题,建议使用相对路径或者通过代码获取程序的运行目录。
  • 测试:打包完成后,需要在目标环境中进行测试,确保程序能够正常运行。

示例:打包一个简单的Python脚本

假设你有一个名为hello.py的脚本:

print("Hello, World!")
input("Press Enter to exit...")

使用PyInstaller打包:

pyinstaller --onefile hello.py

打包完成后,在dist目录下会生成hello.exe(Windows系统)或hello(Linux/macOS系统)文件,将这个文件复制到其他机器上就可以直接运行。

当用户程序变为可执行程序时,它会经历两个不同的环境。首先是翻译环境,在这个环境中,源代码被转换为可执行的机器指令。然后是执行环境,用于实际执行代码。在执行环境中,各个目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序。 对于Qt可执行程序的制作,最简单、最快速的方法是创建一个安装文件,也就是xx.exe文件。这个安装文件可以包含所有必要的文件和资源,以便用户能够轻松地安装和运行程序。 在日常开发中,如果想让其他非开发人员使用Python写的小工具,可以将其打包成可执行程序。在Linux和Windows两种平台下,可以使用pyinstaller工具来进行打包。Pyinstaller是一个用于将Python程序打包成可执行文件的工具。它能够将Python解释器、依赖的库和脚本文件打包在一起,生成一个独立的可执行程序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [谈谈c语言程序如何变成可执行文件](https://download.csdn.net/download/weixin_38670297/14940262)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Qt5.9.1可执行程序做成可执行文件的步骤](https://download.csdn.net/download/qq_21876195/10038148)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [将python程序变成可执行程序](https://blog.csdn.net/PellyKoo/article/details/129375361)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值