Привязка 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