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

Python 3.12 Conda环境使用wandb时出现distutils模块缺失错误

Python 3.12 Conda环境中WandB启动报错:ModuleNotFoundError: No module named 'distutils'

问题描述

在Python 3.12版本的Conda环境中安装并运行最新版wandb时,会触发ModuleNotFoundError: No module named 'distutils'错误。根源在于wandb的依赖包dockerpycreds引用了已在Python 3.12中被移除的distutils模块。

复现步骤

  • 创建Python 3.12的Conda环境:
    conda create -n wandb_test_env python=3.12
    conda activate wandb_test_env
    
  • 安装wandb:
    pip install wandb
    
  • 执行wandb命令:
    wandb --help
    
    执行wandb --version也会触发该错误。

报错信息

Traceback (most recent call last):
  File "<env_path>/bin/wandb", line 5, in <module>
    from wandb.cli.cli import cli
  File "<env_path>/lib/python3.12/site-packages/wandb/__init__.py", line 21, in <module>
    from wandb import sdk as wandb_sdk
  File "<env_path>/lib/python3.12/site-packages/wandb/sdk/__init__.py", line 25, in <module>
    from .artifacts.artifact import Artifact
  File "<env_path>/lib/python3.12/site-packages/wandb/sdk/artifacts/artifact.py", line 40, in <module>
    from wandb.apis.normalize import normalize_exceptions
  File "<env_path>/lib/python3.12/site-packages/wandb/apis/__init__.py", line 44, in <module>
    from .public import Api as PublicApi  # noqa
  File "<env_path>/lib/python3.12/site-packages/wandb/apis/public/__init__.py", line 1, in <module>
    from wandb.apis.public.api import Api, RetryingClient, requests
  File "<env_path>/lib/python3.12/site-packages/wandb/apis/public/api.py", line 40, in <module>
    from wandb.sdk.launch.utils import LAUNCH_DEFAULT_PROJECT
  File "<env_path>/lib/python3.12/site-packages/wandb/sdk/launch/__init__.py", line 1, in <module>
    from ._launch import create_and_run_agent, launch
  File "<env_path>/lib/python3.12/site-packages/wandb/sdk/launch/_launch.py", line 12, in <module>
    from . import loader
  File "<env_path>/lib/python3.12/site-packages/wandb/sdk/launch/loader.py", line 7, in <module>
    from wandb.docker import is_docker_installed
  File "<env_path>/lib/python3.12/site-packages/wandb/docker/__init__.py", line 8, in <module>
    from dockerpycreds.utils import find_executable  # type: ignore
  File "<env_path>/lib/python3.12/site-packages/dockerpycreds/__init__.py", line 2, in <module>
    from .store import Store
  File "<env_path>/lib/python3.12/site-packages/dockerpycreds/store.py", line 9, in <module>
    from .utils import create_environment_dict
  File "<env_path>/lib/python3.12/site-packages/dockerpycreds/utils.py", line 1, in <module>
    import distutils.spawn
ModuleNotFoundError: No module named 'distutils'

预期行为

wandb应能在Python 3.12环境中正常运行,不会因distutils模块缺失抛出错误。

解决方案

方案1:安装setuptools(推荐)

Python 3.12中distutils已被整合到setuptools包中,直接安装即可解决依赖问题:

pip install setuptools

安装完成后重新执行wandb命令即可正常使用。

方案2:通过Conda安装distutils

若方案1无效,可尝试通过conda-forge频道安装独立的distutils包:

conda install -c conda-forge distutils

方案3:等待依赖包官方修复

该问题属于dockerpycreds包的Python 3.12兼容性问题,后续官方发布适配版本后,更新依赖即可彻底解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:41:02