WSL2执行pip install gym==0.21.0报错:pkgutil无ImpImporter属性
解决WSL2中安装gym==0.21.0时的
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'报错 核心原因
Python 3.12移除了pkgutil.ImpImporter属性,而gym==0.21.0是较旧版本,依赖的构建工具链(pkg_resources/setuptools)仍在调用该已移除的接口,导致构建元数据失败。仅降级setuptools无法解决,因为问题根源是Python版本不兼容。
可行解决方案
方案1:创建兼容的Python虚拟环境(推荐)
gym==0.21.0支持Python 3.6~3.10版本,通过conda创建对应版本的虚拟环境:
- 创建并激活Python 3.10环境:
conda create -n gym_env python=3.10 -y conda activate gym_env - 在该环境中安装gym==0.21.0:
pip install gym==0.21.0
方案2:跳过构建隔离安装(不推荐,可能引发依赖冲突)
若坚持使用Python 3.12,可尝试跳过pip的构建隔离机制,提前安装gym依赖后再安装:
- 安装gym==0.21.0的核心依赖:
pip install numpy>=1.18.5 cloudpickle>=1.2.0 - 带
--no-build-isolation参数安装gym:pip install gym==0.21.0 --no-build-isolation
额外提示
避免在root用户的全局conda环境中安装包,使用虚拟环境可隔离依赖,防止破坏系统原有配置。
内容的提问来源于stack exchange,提问作者cy lin
相关产品推荐
相关产品推荐

