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

Supervisor部署Python脚本时venv虚拟环境激活异常排查求助

Supervisor运行Python虚拟环境脚本依赖缺失问题解决

问题场景

使用Supervisor 4.1.0运行需venv虚拟环境的Python脚本,手动运行正常,但Supervisor启动后出现单个依赖缺失:

  • Supervisor配置文件:
[program:counter]
directory=/home/dell/vito/counter
command=bash /home/dell/vito/counter/venv/bin/python3 /home/dell/vito/counter/main.py
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
stderr_logfile=/var/log/counter/counter.err.log
stdout_logfile=/var/log/counter/counter.out.log
user=dell
  • 错误日志(counter.err.log):
TERM environment variable not set.
/bin/sh: 1: pip: not found
  • 问题根源日志(counter.out.log):
Ultralytics YOLOv8.2.22 🚀 Python-3.8.10 torch-2.0.0+nv23.05 CUDA:0 (Orin, 7337MiB)
Loading /home/avacon/vito/counter/models/best320n_29052024.engine for TensorRT inference...
requirements: Ultralytics requirement ['nvidia-tensorrt'] not found, attempting AutoUpdate...

直接改用python3 main.py会出现ultralytics模块未找到,推测虚拟环境未完全激活。

解决方法

方法1:提前手动安装缺失依赖

进入虚拟环境安装nvidia-tensorrt,避免Ultralytics自动更新时触发pip调用问题:

source /home/dell/vito/counter/venv/bin/activate
pip install nvidia-tensorrt
deactivate

安装完成后重启Supervisor进程:

sudo supervisorctl restart counter

方法2:修改Supervisor命令,完整激活虚拟环境

将配置中的command改为先激活虚拟环境再执行脚本,确保所有环境变量加载:

command=bash -c "source /home/dell/vito/counter/venv/bin/activate && python main.py"

更新配置并重启:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart counter

方法3:在Supervisor配置中补充环境变量

在[program:counter]块中添加环境变量设置,指定TERM和PATH,确保虚拟环境的pip被优先调用:

environment=TERM=xterm, PATH="/home/dell/vito/counter/venv/bin:%(ENV_PATH)s"

更新配置并重启服务:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart counter

问题原因说明

直接调用虚拟环境的python解释器时,虽然使用了虚拟环境的Python,但Supervisor的默认PATH不包含虚拟环境的bin目录,导致Ultralytics自动更新时调用的pip命令找不到;同时TERM环境变量缺失会影响部分命令的正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 03:22:23