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

如何为通过systemd运行的Python脚本设置LANG环境变量?

在systemd服务中设置LANG环境变量解决Python编码错误

有两种简单的方法可以在你的script.service配置里设置LANG=en_US.utf8环境变量:

方法一:在ExecStart中直接指定环境变量

和你手动启动脚本的逻辑一致,通过/usr/bin/env传递环境变量,修改[Service]段的ExecStart:

[Unit]
Description=My Script
After=syslog.target

[Service]
Type=simple
User=username
Group=sudo
WorkingDirectory=/home/username/project_dir/
ExecStart=/usr/bin/env LANG=en_US.utf8 /usr/bin/python3.11 main.py

[Install]
WantedBy=multi-user.target

方法二:使用systemd的Environment字段

这是更规范的systemd配置方式,适合需要设置多个环境变量的场景,在[Service]段添加Environment字段:

[Unit]
Description=My Script
After=syslog.target

[Service]
Type=simple
User=username
Group=sudo
WorkingDirectory=/home/username/project_dir/
Environment="LANG=en_US.utf8"
ExecStart=/usr/bin/python3.11 main.py

[Install]
WantedBy=multi-user.target

配置生效步骤

修改完服务文件后,执行以下命令让配置生效:

  • 重新加载systemd配置:sudo systemctl daemon-reload
  • 重启你的服务:sudo systemctl restart script.service

验证环境变量是否生效

可以通过以下方式确认LANG是否正确设置:

  1. 查看服务的环境变量:systemctl show script.service --property=Environment
  2. 在Python脚本中添加代码打印环境变量:
import os
print(os.environ.get('LANG'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:40:58