使用mujoco-py软件包的MuJoCo物理库的Python绑定 - python

我想使用MuJoCo(http://www.mujoco.org/),这是一个具有python绑定(https://github.com/openai/mujoco-py)的高级物理模拟器。

我已经获得了MuJoCo许可证文件mjkey.text,并将所需的路径MUJOCO_PY_MJKEY_PATH,MUJOCO_PY_MJPRO_PATH添加到了环境变量中。

MUJOCO_PY_MJPRO_PATH = C:\Dropbox\PhD\MuJoCo\mjpro131
MUJOCO_PY_MJKEY_PATH = C:\Dropbox\PhD\MuJoCo\mjpro131\bin

但是,我想使用以下简单代码导入libray时,

import mujoco_py

我收到以下错误消息。

C:\Dropbox\Python\Anaconda\python.exe
C:/Dropbox/PhD/Python/X/MujocoHelloWorld/test.py
Traceback (most recent call last):
  File "C:/Dropbox/PhD/Python/X/MujocoHelloWorld/test.py", line 1, in <module>
    import mujoco_py
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Dropbox\Python\Anaconda\lib\site-packages\mujoco_py-0.5.4-py3.5.egg\mujoco_py\__init__.py", line 4, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Dropbox\Python\Anaconda\lib\site-packages\mujoco_py-0.5.4-py3.5.egg\mujoco_py\mjviewer.py", line 7, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Dropbox\Python\Anaconda\lib\site-packages\mujoco_py-0.5.4-py3.5.egg\mujoco_py\mjcore.py", line 6, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Dropbox\Python\Anaconda\lib\site-packages\mujoco_py-0.5.4-py3.5.egg\mujoco_py\mjlib.py", line 21, in <module>
  File "C:\Dropbox\Python\Anaconda\lib\ctypes\__init__.py", line 425, in LoadLibrary
    return self._dlltype(name)
  File "C:\Dropbox\Python\Anaconda\lib\ctypes\__init__.py", line 347, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application

Process finished with exit code 1

我在带有MuJoCo 1.31 64位的Windows 7 64位上使用Python 3.5.1 64位。

我猜测问题是由于某种不兼容性造成的,我还尝试了32位MuJoCo 1.31和32位Python 3.5.2。甚至,我尝试了非逻辑的32位Python和64位MuJoCo组合,反之亦然。

MuJoCo库中已编译的给定示例“simulate.exe”可以正常工作。因此,我想我拥有的64位MuJoCo库没有问题。 (顺便说一下,它的32位版本不能在64位Windows上运行)

因此,将C++库加载到Python时可能会出现此问题。我进行了调试,至少检查了mujoco_py库中的Python代码是否尝试从正确的路径加载“mujoco131.lib”(不是“mujoco131.dll”)。然后发生错误,并且代码无法进一步运行。

我愿意接受任何形式的评论和建议。

干杯!祝你有愉快的一天!

参考方案

尝试编辑mjlib.py,在加载程序中将"bin/mujoco131.lib"替换为"bin/mujoco131.dll"

我还必须在platname = "win"中明确指定platname_targdir.py

Python uuid4,如何限制唯一字符的长度 - python

在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…

Python:无法识别Pip命令 - python

这是我拍摄的屏幕截图。当我尝试在命令提示符下使用pip时,出现以下错误消息:pip无法识别为内部或外部命令,可操作程序或批处理文件。我已经检查了这个线程:How do I install pip on Windows?我所能找到的就是我必须将"C:\PythonX\Scripts"添加到我的类路径中,其中X代表python版本。如您在我的…

Python:如何将有效的uuid从String转换为UUID? - python

我收到的数据是 { "name": "Unknown", "parent": "Uncategorized", "uuid": "06335e84-2872-4914-8c5d-3ed07d2a2f16" }, 我需要将uuid从Strin…

Python 3会流行吗? - python

我已经学习了一些Python 2和Python 3,似乎Python 2总体上比Python 3更好。这就是我的问题所在。是否有充分的理由真正切换到python 3? 参考方案 总体上,甚至在大多数细节上,Python3都比Python2更好。关于第三方库, Python 3落后于的唯一区域是。使Python变得如此出色的原因不仅在于它作为一种语言的内在特性…

python 。向字典中的键添加多个项目 - python

我正在尝试根据一组唯一值构建一个字典,以用作键和提供项目的元组压缩列表。set = ("a","b","c") lst 1 =("a","a","b","b","c","d",&#…