关于MARLlib代码调试的相关错误记录

最近在调试marllib的代码,遇到一些错误,一开始手足无措,后来经过查询资料,请教了好多同学,在得以解决。为了帮助像我一样的小白尽快进入课题,不被这些序偶无困扰,所以记录下来,帮助一起前进的同学。

ImportError

git clone https://github.com/MultiAgentLearning/playground
cd playground
pip install .
cd /home/YourPathTo/MARLlib/patch
python add_patch.py --pommerman
pip install gym==0.21.0

在安装pommerman时,执行python add_patch.py --pommerman出现错误,废话不多说,直接上图。

关于MARLlib代码调试的相关错误记录_第1张图片

importerror :cannot import name 'reraise' from  'gym.utils'

 通过上述错误,我们发现,原因是在上述路径下 gym文件夹下的utils文件夹的reraise文件出现了某种错误,我们切换到该路径下去查看文件,发现相关文件夹下并没有这个reraise的文件。通过在百度搜索,我们发现reraise属于pytest包,所以在环境下安装Pytest的包。为此我们使用如下命令进行安装。

 pip install pytest-reraise

关于MARLlib代码调试的相关错误记录_第2张图片

 成功安装之后我们会发现,在你的pytest_reraise文件夹下会有reraise.py文件,

关于MARLlib代码调试的相关错误记录_第3张图片

将文件复制到gym下的utils文件夹下,

关于MARLlib代码调试的相关错误记录_第4张图片

经过上述操作,我们发现我们的问题已经解决。但是在执行过程中出现下面的错误类型。

AttributeError

在此执行python add_patch.py --pommerman -y -p 出现以下错误。

关于MARLlib代码调试的相关错误记录_第5张图片

经过搜索,查找了半天都没找到问题,后来经过查看一篇帖子,地址在这https://blog.csdn.net/hello_earth616/article/details/127566692,终于找到类似的问题,原因是环境的问题,我们按照帖子的内容进行修改,先卸载之前的pyglet,再使用Conda进行安装,如果使用是最新的anconda 可能会出现错误。所以可以使用pip 对pyglet进行降低版本,使用如下命令进行更新。

pip install pyglet==1.5.9

conda install pyglet

 根据自己的情况可以选择执行conda命令或者pip指令。不出问题的话,我们运行主函数并附上相关的参数配置,我们的程序就可以运行啦。

python marl/main.py --algo_config=mappo --finetuned --env_config=pommerman with env_args.map_name=OneVsOne-v0

 经过不断踩坑,终于运行起来了,和大家分享一下快乐。

关于MARLlib代码调试的相关错误记录_第6张图片下一步可以安心的去看文献,研究算法了。

总结

1.ImportError,一般是导入的包或者文件有问题,需要我们到相应的文件夹下面去查看文件是否存在,如果不存在,我们只需要安装相应的模块或者将文件放入相关目录之下就行,一般错误就会解决。

2.AttributeError,可能会因为某些包的版本不对(如果是复现别人的代码),或者是代码的模块或者函数的名称不对,需要仔细检查(自己的代码)。

最后希望自己踩的坑能够帮助到大家,如果对大家有帮助,希望大家可以顺便点赞,收藏和转发。如果有不同的错误,欢迎大家在下方留言,大家一起学习,共同进步。

路虽远行则将至,事虽难做则必成。希望在学习的路上,大家可以共同进步,坚持到最后。

 

 

你可能感兴趣的:(强化学习,python,开发语言,人工智能,pycharm,程序人生)