python 3.10安装Box2D遇到的问题及解决办法汇总

文章目录

  • 前言
  • 环境背景
  • 问题一:如何在指定版本python下安装第三方库
  • 问题二:提示DEPRECATION: Box2D is being installed using the legacy 'setup.py install' method...并出现error: command 'swig.exe' failed: None
  • 问题三:pycharm中执行代码时提示:No module named 'Box2D'

前言

近期在入门强化学习,搭建环境过程遇到很多问题,网上资料比较分散,本人查阅了许多资料才得以解决,将问题与解决方法整理汇总如下。

环境背景

本人电脑上同时有python3.6和python3.10两个版本,均在同一盘符下,首先尝试直接在pycharm内安装Box2D包,即在pycharm上通过:文件->设置->项目->python解释器->左下角“+”->搜索要安装的包。发现在python3.6版本可以安装成功,但是在python3.10版本安装失败,下面基于此情况对在python3.10版本安装Box2D中踩到的坑进行介绍。

本文最终要实现Gym Documentation网页中第二段代码(直接执行很多报错)

注意:确保已安装gym库、ale-py库、pygame库,下述操作在cmd中完成,进入到要安装的python版本文件中,如D:\python310

问题一:如何在指定版本python下安装第三方库

由于python3.6版本已经安装了Box2D库,直接使用命令pip install box2d
会提示库已安装(若之前未安装过,则会安装至python3.6版本下)。对此,我们可以将指定版本python目录中的python.exe和pythonw.exe改为其他的名字如python310.exe和pythonw310.exe,再执行python310 -m pip install Box2D

此问题参考文章
https://blog.csdn.net/qq_38418803/article/details/106145674

问题二:提示DEPRECATION: Box2D is being installed using the legacy ‘setup.py install’ method…并出现error: command ‘swig.exe’ failed: None

具体情况如下图
python 3.10安装Box2D遇到的问题及解决办法汇总_第1张图片
根据提示,说我们安装使用一个已被弃用的方法,缺少基础环境和包。我们首先更新了pip版本,升级至23.0.1,但依旧报同样问题(DEPRECATION中写到 pip 23.1 will enforce this behaviour change,故在未来版本pip中可能解决此问题)但此DEPRECATION个人认为可以忽略,使用python310 -m pip install Box2D --use-pep517命令可以让DEPRECATION消失但还是无法安装成功,如下图。
python 3.10安装Box2D遇到的问题及解决办法汇总_第2张图片

问题在图片中最后一行提示 error: command ‘swig.exe’ failed: None,此问题表明我们缺少swig包相关命令,故执行命令python310 -m pip install swig,完成swig的安装,然后再执行python310 -m pip install Box2D,完成安装Box2D,如下图。
python 3.10安装Box2D遇到的问题及解决办法汇总_第3张图片

此问题参考文章
https://github.com/pypa/pip/issues/8559
https://blog.csdn.net/yuan2019035055/article/details/127904975
https://blog.csdn.net/weixin_42188287/article/details/108069285

问题三:pycharm中执行代码时提示:No module named ‘Box2D’

此时还需要在cmd执行命令python310 -m pip install Box2D box2d-kengz,执行后程序应该就可以跑起来了,如下图。

python 3.10安装Box2D遇到的问题及解决办法汇总_第4张图片

此问题参考文章
https://blog.csdn.net/weixin_44104200/article/details/120494390

你可能感兴趣的:(python,开发语言,gym,Box2D,强化学习)