Привязка Python для физической библиотеки MuJoCo с использованием пакета mujoco-py

Я хочу использовать MuJoCo (http://www.mujoco.org/), продвинутый физический симулятор с привязками python (https://github.com/openai/mujoco-py).

у меня есть файл лицензии MuJoCo mjkey.текст и добавил необходимые пути MUJOCO_PY_MJKEY_PATH, MUJOCO_PY_MJPRO_PATH к переменным среды соответственно.

MUJOCO_PY_MJPRO_PATH = C:DropboxPhDMuJoComjpro131
MUJOCO_PY_MJKEY_PATH = C:DropboxPhDMuJoComjpro131bin

однако, как только я хочу импортировать libray со следующим простым кодом,

import mujoco_py

я получил следующая ошибка.

C:DropboxPythonAnacondapython.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:DropboxPythonAnacondalibsite-packagesmujoco_py-0.5.4-py3.5.eggmujoco_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:DropboxPythonAnacondalibsite-packagesmujoco_py-0.5.4-py3.5.eggmujoco_pymjviewer.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:DropboxPythonAnacondalibsite-packagesmujoco_py-0.5.4-py3.5.eggmujoco_pymjcore.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:DropboxPythonAnacondalibsite-packagesmujoco_py-0.5.4-py3.5.eggmujoco_pymjlib.py", line 21, in <module>
  File "C:DropboxPythonAnacondalibctypes__init__.py", line 425, in LoadLibrary
    return self._dlltype(name)
  File "C:DropboxPythonAnacondalibctypes__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

Я использую Python 3.5.1 64-бит на Windows 7 64-бит с MuJoCo 1.31 64-бит.

Я догадался, что проблема связана с какой-то несовместимостью, я также попробовал Python 3.5.2 32-бит с MuJoCo 1.31 32-бит. Даже я попробовал нелогичную 32-битную комбинацию Python и 64-битную комбинацию MuJoCo и наоборот.

уже скомпилированный данный пример " simulate.exe " в библиотеке MuJoCo отлично работает. Так что, думаю, нет проблема с 64-битной библиотекой MuJoCo, которая у меня есть. ( Кстати, 32-разрядная версия не работает на 64-битной Windows )

таким образом, проблема, вероятно, должна возникнуть при загрузке библиотеки C++ в Python. Я отладил и, по крайней мере, проверил, что код Python в библиотеке mujoco_py пытается загрузить "mujoco131.lib "(не " mujoco131.dll", хотя) с правильного пути. И тогда возникает ошибка, и код не запускается дальше.

Я открыт для любых замечаний и предложения..

Ура! И хорошего дня!

1 ответов


попробуйте изменить mjlib.py, вместо "bin/mujoco131.lib" С "bin/mujoco131.dll" в загрузчик.

мне также пришлось явно указать platname = "win" на platname_targdir.py