在第26行here我们有这样一行:
self.sim = mujoco_py.MjSim(model, nsubsteps=n_substeps)
mujoco\u py MjSim文件在这里:https://github.com/openai/mujoco-py/blob/master/mujoco_py/mjsim.pyx
我不明白这玩意儿是怎么工作的。我读了cython教程,但没有意义:https://cython.readthedocs.io/en/latest/src/quickstart/build.html
具体来说,在python中我们必须做:mujoco_py.mjsim.mjsim公司()来实例化MjSim对象。cython究竟是如何加载这样的东西,使得MjSim对象在mujoco\u py之后可以立即调用的?你知道吗
另外,在这里的第155行:https://github.com/openai/mujoco-py/blob/master/mujoco_py/mjrendercontext.pyx
有一个叫mjv\u updateScene(…)。这个函数是在哪里定义的?你知道吗
关于
mjv_updateScene
的第二个问题的答案是:“他们有我见过的最糟糕的构建系统,毫无意义”。你知道吗我相信cymj.pyx是唯一一个实际构建的.pyx文件(尽管很难追溯到很久以前)。此文件手动(文本)包含所有其他.pyx文件。这违反了两个约定:第一,应该将内容进行cimported,而不是以文本形式包含(文本包含只是作为一种早期处理方式的人工制品而存在),第二,包含的文件应该命名为“.pxi”,以表示它们被包含(那么至少你知道它不是自包含的)。相反,包含的文件被命名为.pxi、.pyx或.pxd的混合文件,与它们的角色无关。你知道吗
mjv_updateScene
本身在pxd/mujoco.pxd中定义,它间接地包含在generated/wrappers.pxi中。你知道吗我对这个图书馆一无所知,但事实上他们认为这种安排是个好主意,这让我对其他东西的质量产生了严重的怀疑。(然而,这可能有很好的理由——我们偶尔都会做一些看起来可疑的博吉工作……)
关于
MjSim
的最初问题在@JustinEzequiel关于__init__.py
的评论中得到了回答。你知道吗相关问题 更多 >
编程相关推荐