Windows下打包 Python 程序并记录日志

在 Windows 平台上,我们常常希望将 Python 脚本打包成可执行文件(.exe),并能够在命令行窗口中运行,同时将程序的日志输出到文件中,方便调试和记录。本篇博客将详细介绍如何实现这一需求。

1. 安装 pyinstaller 进行 Python 打包

我们可以使用 pyinstaller 将 Python 脚本转换为 Windows 可执行文件。

安装 pyinstaller

在命令行中运行以下命令安装 pyinstaller:

pip install pyinstaller

使用 pyinstaller 进行打包

假设你的 Python 代码文件是 my_script.py,你可以使用以下命令将其打包成 .exe 文件:

pyinstaller --onefile --console my_script.py

参数说明

–onefile:将所有依赖打包成一个独立的 .exe 文件。

–console:在 Windows 命令行窗口(cmd)中显示输出。

打包完成后,你会在 dist/ 目录下找到 my_script.exe 文件。

2 在 Windows 命令行中运行可执行文件

打包完成后,你可以在 Windows 命令行(cmd)中运行该程序:dist\my_script.exe

如果你希望运行后窗口保持打开状态,可以使用以下命令:

start cmd /k dist\my_script.exe

3. 让 Python 代码记录日志

为了让 Python 代码在执行过程中能输出日志,并将日志保存到文件,我们可以使用 logging 模块。

修改 my_script.py 代码

import logging
# 配置日志记录
logging.basicConfig(
    filename="output.log",  # 日志文件名
    level=logging.INFO,      # 记录日志的级别
    format="%(asctime)s - %(levelname)s - %(message)s"
)

# 在终端和日志文件同时输出
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
console.setFormatter(formatter)
logging.getLogger().addHandler(console)

# 示例日志
logging.info("程序开始执行")
try:
    for i in range(5):
        logging.info(f"正在处理第 {i+1} 个任务")
    logging.info("程序执行完成")
except Exception as e:
    logging.error(f"发生错误: {e}")

执行后,你会得到

output.log 文件,记录了程序执行的详细日志。

命令行窗口也会显示相同的日志内容。

4. 在 Windows 命令行执行并记录日志

如果你希望将 .exe 运行时的输出直接保存到日志文件,可以在 Windows 命令行中运行:

dist\my_script.exe > output.log 2>&1

这样,所有标准输出和错误输出都会保存到 output.log 中。

总结

安装 pyinstaller

pip install pyinstaller

打包 Python 程序

pyinstaller --onefile --console my_script.py

运行 .exe 并输出日志

dist\my_script.exe > output.log 2>&1

通过这些步骤,你可以在 Windows 下打包 Python 程序,并且能够在运行时输出日志到文件,方便调试和记录程序执行情况。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值