安装gym==0.21.0报错

报错
Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 34, in <module> File "/tmp/pip-install-j754j_3r/gym_a6fe2aa288224bc5b23fa859e452d1de/setup.py", line 39, in <module> setup( File "/usr/local/lib/python3.8/site-packages/setuptools/__init__.py", line 87, in setup return distutils.core.setup(**attrs) File "/usr/local/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup return run_commands(dist) File "/usr/local/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands dist.run_commands() File "/usr/local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 968, in run_commands self.run_command(cmd) File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 1217, in run_command super().run_command(command) File "/usr/local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 987, in run_command cmd_obj.run() File "/usr/local/lib/python3.8/site-packages/wheel/_bdist_wheel.py", line 439, in run self.egg2dist(self.egginfo_dir, distinfo_dir) File "/usr/local/lib/python3.8/site-packages/wheel/_bdist_wheel.py", line 579, in egg2dist pkg_info = pkginfo_to_metadata(egginfo_path, pkginfo_path) File "/usr/local/lib/python3.8/site-packages/wheel/metadata.py", line 164, in pkginfo_to_metadata for key, value in generate_requirements({extra: reqs}): File "/usr/local/lib/python3.8/site-packages/wheel/metadata.py", line 141, in generate_requirements for new_req in convert_requirements(depends): File "/usr/local/lib/python3.8/site-packages/wheel/metadata.py", line 106, in convert_requirements parsed_requirement = Requirement(req) File "/usr/local/lib/python3.8/site-packages/wheel/vendored/packaging/requirements.py", line 37, in __init__ raise InvalidRequirement(str(e)) from e wheel.vendored.packaging.requirements.InvalidRequirement: Expected end or semicolon (after version specifier) opencv-python>=3. ~~~^

原因:它的配置文件 setup.py 里写的是 opencv-python>=3.(注意结尾少了个0),而你当前的编译工具(wheel)非常严格,它认为 3. 是非法格式,必须写成 3.0 才能通过。

解决:直接下载源码,手动把这个标点符号改对,然后安装

# 下载 gym 0.21.0 的源码包到当前目录
pip download gym==0.21.0 --no-binary=:all: --no-deps -d .

# 解压源码包
tar -xvf gym-0.21.0.tar.gz

# 修正 setup.py 中的版本号格式错误
sed -i 's/opencv-python>=3\./opencv-python>=3.0/g' gym-0.21.0/setup.py

# 再次确认一下(可选),看看是否修改成功
grep "opencv-python" gym-0.21.0/setup.py
# 输出应该是: 'opencv-python>=3.0',

# 安装

pip install ./gym-0.21.0

# 此时应该会显示 Successfully installed gym-0.21.0

后续就可以安装其它环境了(如:pip install gym-super-mario-bros==7.3.0 nes-py==8.2.1)

posted @ 2025-12-02 20:14  日出清晨  阅读(38)  评论(0)    收藏  举报