You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu - .desktop文件关联Python脚本:脚本运行正常但日志失效

解决桌面启动脚本无法写入日志的问题

这种情况我之前也碰到过,大概率是工作目录不匹配导致的,咱们一步步排查:

1. 先检查脚本里的日志路径写法

如果你的脚本里写的是相对路径,比如:

with open("script.log", "a") as f:
    f.write("日志内容\n")

那问题就出在这了:

  • 当你在命令行cd /home/user/Desktop后执行python script.py,脚本的工作目录就是/home/user/Desktop,所以会往这个目录下的script.log写内容;
  • 但双击桌面图标启动时,系统默认的工作目录是你的用户主目录(也就是/home/user),脚本会尝试往/home/user/script.log写,如果这个文件不存在或者你没有写入权限,就会失败。

解决办法:用绝对路径写日志文件

把脚本里的日志路径改成绝对路径:

log_path = "/home/user/Desktop/script.log"
with open(log_path, "a") as f:
    f.write("日志内容\n")

2. 或者给Desktop文件指定工作目录

如果你不想改脚本,也可以在Start.desktop里加上WorkingDirectory字段,指定脚本所在的目录:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Name=Start
Exec=/home/user/Desktop/script.py
WorkingDirectory=/home/user/Desktop
Comment=startup

这样双击图标时,脚本的工作目录就和命令行执行时一致了,相对路径也能正常找到日志文件。

3. 排查权限问题(可能性较低)

如果上面两种方法都不行,那可以检查script.log的权限:

  • 打开终端,执行ls -l /home/user/Desktop/script.log,看看文件的所有者和组是不是你的用户;
  • 如果不是,执行sudo chown user:user /home/user/Desktop/script.log(把user换成你的用户名),给文件赋予正确的权限。

一般来说,前两种方法就能解决问题,先试试绝对路径或者指定工作目录吧!

内容的提问来源于stack exchange,提问作者user9001965

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:28:25