问题描述
File "wrappers.pxi", line 2547, in mujoco_py.cymj.PyMjData.set_joint_qpos
TypeError: 'numpy.intc' object is not iterable
这个问题是在windows10上安装mujoco的时候遇到的。在ubuntu上安装mujoco时很顺利,没想到在windows上安装会如此费劲,特此记录。
版本
python==3.7.0
gym==0.25.2
gym-robotics==0.1.0
mujoco-py==1.50.1.1
具体解决方案
1. 首先去官网下载mujoco-py的源代码:
https://github.com/openai/mujoco-py/releases
2. 然后根据Windows10安装开源Mujoco - 知乎中说的那样,把下载的mujoco_py解压,把其中的mujoco_py文件夹复制,按个ctrl+C。
3. 将复制好的文件夹放入虚拟环境对应的文件夹中
4. 修改generated文件夹下的wrappers.pxi文件
根据https://github.com/openai/mujoco-py/issues/504中提到的,将所有的
isinstance(addr, (int, np.int32, np.int64))
替换为下面的代码,并点击保存,退出。
hasattr(addr, '__int__')
5. 运行以下代码
python
import mujoco_py
待编译完成后,输入exit()退出。
6. 再次运行mujoco相关的代码,发现不再出现上述错误,问题成功解决。
后记
下次遇到这种需要编译的代码,如果不清楚怎么单独执行编译,在修改完编译指令后,需要删除已经编译完成的文件或者整个文件夹再重新运行编译代码,才能解决编译出现的问题。(不知道总结的对不对,水平有限,还请指正~)