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

Debian11下安装supervisor 4.2.2后运行supervisorctl报错求助

问题:Debian 11下源码编译Python搭配Supervisor的安装与运行故障
  • 环境:Debian 11,源码编译的Python3.11/3.10
  • Supervisor版本:4.2.2-2,安装后运行supervisorctl报错
  • 已尝试操作:升级/降级PIP、单独安装python3 importlib包,均无效

报错1:运行supervisorctl时的包元数据缺失

Traceback (most recent call last):
File "/usr/local/lib/python3.11/importlib/metadata/init.py", line 563, in from_name
return next(cls.discover(name=name))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/bin/supervisorctl", line 33, in
sys.exit(load_entry_point('supervisor==4.2.2', 'console_scripts', 'supervisorctl')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/supervisorctl", line 22, in importlib_load_entry_point
for entry_point in distribution(dist_name).entry_points
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/metadata/init.py", line 981, in distribution
return Distribution.from_name(distribution_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/metadata/init.py", line 565, in from_name
raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: No package metadata was found for supervisor

报错2:安装importlib-metadata时的PIP版本依赖问题

执行命令:

pip install importlib-metadata

报错:

File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pkg_resources/init.py", line 786, in resolve
raise DistributionNotFound(req, requirers)
pip._vendor.pkg_resources.DistributionNotFound: The 'pip==20.3.4' distribution was not found and is required by the application

报错3:降级PIP后安装Supervisor的lsb_release命令失败

File "/usr/local/lib/python3.10/site-packages/pip/_vendor/distro.py", line 556, in get
ret = obj.dict[self._fname] = self._f(obj)
File "/usr/local/lib/python3.10/site-packages/pip/_vendor/distro.py", line 1014, in _lsb_release_info
stdout = subprocess.check_output(cmd, stderr=devnull)
File "/usr/local/lib/python3.10/subprocess.py", line 421, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/local/lib/python3.10/subprocess.py", line 526, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.


解决方案

1. 隔离源码编译的Python环境

Debian 11自带Python3.9,源码编译的Python会覆盖系统pip路径导致依赖混乱,编译时指定独立前缀:

# 以Python3.11为例
./configure --prefix=/usr/local/python311 --enable-optimizations
make && make install
# 创建独立软链,避免覆盖系统命令
ln -s /usr/local/python311/bin/python3.11 /usr/local/bin/python311
ln -s /usr/local/python311/bin/pip3.11 /usr/local/bin/pip311

2. 修复lsb_release命令缺失问题

Debian最小化安装可能缺少相关包,先安装:

apt update && apt install -y lsb-release

3. 用虚拟环境安装Supervisor

使用编译的Python创建虚拟环境,彻底隔离依赖:

# 创建虚拟环境
python311 -m venv /opt/supervisor-venv
# 激活虚拟环境
source /opt/supervisor-venv/bin/activate
# 升级pip并安装指定版本Supervisor
pip install --upgrade pip
pip install supervisor==4.2.2
  • 若需全局调用,可创建软链:
ln -s /opt/supervisor-venv/bin/supervisord /usr/local/bin/supervisord
ln -s /opt/supervisor-venv/bin/supervisorctl /usr/local/bin/supervisorctl

4. 清理冲突的系统包

如果之前用系统包管理安装过Supervisor,先彻底卸载:

apt remove --purge supervisor

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:47:53