Chcę używać MuJoCo (http://www.mujoco.org/), zaawansowanego symulatora fizyki z powiązaniami z pythona (https://github.com/openai/mujoco-py).Wiązanie w Pythonie dla biblioteki fizyki MuJoCo przy użyciu pakietu mujoco-py
Mam mój plik licencji MuJoCo mjkey.text i odpowiednio dodałem wymagane ścieżki MUJOCO_PY_MJKEY_PATH, MUJOCO_PY_MJPRO_PATH do zmiennych środowiskowych.
MUJOCO_PY_MJPRO_PATH = C:\Dropbox\PhD\MuJoCo\mjpro131
MUJOCO_PY_MJKEY_PATH = C:\Dropbox\PhD\MuJoCo\mjpro131\bin
jednak szybko, jak chcę zaimportować libray z poniższego prostego kodu,
import mujoco_py
mam następujący komunikat o błędzie.
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
Używam Python 3.5.1 64-bit na Windows 7 64-bit z MuJoCo 1.31 64-bit.
Domyślam się, że problem jest spowodowany pewną niezgodnością. Próbowałem też 32-bitowego 32-bitowego Python 3.5.2 z 32-bitowym MuJoCo. Próbowałem nawet nielogicznej 32-bitowej kombinacji Python i 64-bitowej MuJoCo i na odwrót.
Już skompilowany dany przykład "simulate.exe" w bibliotece MuJoCo działa doskonale. Myślę więc, że nie ma problemu z 64-bitową biblioteką MuJoCo, którą mam. (Nawiasem mówiąc, 32-bitowa wersja nie działa w 64-bitowym systemie Windows)
Problem prawdopodobnie powinien wystąpić podczas ładowania biblioteki C++ do Pythona. Debugowałem i przynajmniej sprawdziłem, czy kod Pythona w bibliotece mujoco_py próbuje załadować "mujoco131.lib" (nie "mujoco131.dll") z poprawnej ścieżki. A następnie pojawia się błąd i kod nie działa dalej.
Jestem otwarty na wszelkie uwagi i sugestie ..
Cheers! I miłego dnia!
Zmiany rzeczywiście pomogły uniknąć błędu (ów). Wielkie dzięki. Ale teraz import po prostu zawiesza się bez żadnego błędu. 'print ("hej")' 'mujoco_py' import ' print ("hej") ' Ten kod drukuje pierwszy "hej", a następnie utrzymuje się na prowadzeniu na zawsze .. Jakiekolwiek dalsze pomysły? –
Możesz spróbować zmienić klasyfikację na Pythona 3.4 za pomocą 'conda install python = 3.4' ' conda install mingw libpython numpy' – haversine
Dzięki za sugestię, ale nadal nie działa. Myślę, że to jest problem z konfiguracją. Jeśli to działa, możesz zapisać wersje zależnych bibliotek. Lub więcej pomysłów? : D –