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

Linux下用systemd启动依赖dotenv的Python脚本遇模块问题求助

解决systemd启动Python脚本找不到dotenv模块的问题

以下是几种可行的解决办法:

  • 用虚拟环境的Python解释器
    如果你的python-dotenv是装在虚拟环境里的,直接替换ExecStart里的Python路径为虚拟环境内的解释器路径。比如虚拟环境位于~/myvenv,配置改成:
    ExecStart=/home/你的用户名/myvenv/bin/python3 <path-to-script>

  • 指定运行用户
    把服务改成以你的普通用户身份运行,这样会加载你用户目录下通过pip install --user python-dotenv安装的包。在Service段添加User字段:

[Service]
User=你的用户名
ExecStart=/usr/bin/python3 <path-to-script>
  • 手动设置PYTHONPATH
    如果包安装在非系统默认的路径里,可以通过bash命令先指定PYTHONPATH再启动脚本:
    ExecStart=/bin/bash -c 'PYTHONPATH=/自定义的包路径 /usr/bin/python3 <path-to-script>'

  • 修正.env文件的加载路径
    别忘了检查脚本里加载.env的逻辑:systemd默认的工作目录是根目录/,如果脚本用相对路径读取.env,会找不到。可以在Service段添加WorkingDirectory指定脚本所在目录:

[Service]
WorkingDirectory=/脚本所在的目录路径
ExecStart=/usr/bin/python3 ./你的脚本文件名.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:37:03