2016-08-04 7 views
7

Python 바인딩 (https://github.com/openai/mujoco-py)을 사용하는 고급 물리 시뮬레이터 MuJoCo (http://www.mujoco.org/)를 사용하고 싶습니다.mujoco-py 패키지를 사용하여 MuJoCo 물리학 라이브러리 용 Python 바인딩

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 비트를 사용하고 있습니다.

문제가 일종의 비 호환성으로 인한 것 같아요. MuJoCo 1.31 32 비트와 함께 파이썬 3.5.2 32 비트를 사용해 보았습니다. 심지어 비 논리적 인 32 비트 파이썬과 64 비트 MuJoCo 조합을 시도해 보았습니다.

이미 컴파일 된 MuJoCo 라이브러리의 예제 "simulate.exe"가 완벽하게 작동합니다. 그래서, 내가 가진 64 비트 MuJoCo 라이브러리에는 아무런 문제가 없다고 생각합니다. (그런데 32 비트 버전은 64 비트 Windows에서 실행되지 않습니다.)

그래서 C++ 라이브러리를 Python으로로드 할 때 문제가 발생할 것입니다. 디버깅을하고 mujoco_py 라이브러리의 Python 코드가 올바른 경로에서 "mujoco131.lib"("mujoco131.dll"이 아님)을로드하려고 시도했는지 확인했습니다. 그런 다음 오류가 발생하고 코드가 더 이상 실행되지 않습니다.

내가 의견과 제안의 모든 종류의 문을 열어주는 말들 ..

건배! 그리고 좋은 하루 되세요!

답변

4

로더에서 을 "bin/mujoco131.dll"으로 바꾸고 mjlib.py을 편집 해보십시오.

는 또한 명시 적으로 platname_targdir.py

+0

실제로 오류 (들)을 방지하는 데 도움이 변화를 platname = "win"를 지정했다. 고마워요. 하지만 가져 오기가 오류없이 중단됩니다. '인쇄 ("안녕하세요") ' '수입 mujoco_py' '인쇄 ("안녕하세요")는' 이 코드는 "헤이"제 다음 인쇄 영원히 .. 더 이상의 아이디어를 실행에 계속? –

+0

'conda install python = 3.4'을 통해 파이썬 3.4로 다운 그레이드 할 수 있습니다. 'conda install mingw libpython numpy' – haversine

+0

제안에 감사하지만 여전히 작동하지 않습니다. 난 그것이 구성 문제가 같아요 .. 만약 당신을 위해 일하고 있다면, 당신은 의존 라이브러리의 버전을 쓸 수 있습니까 .. 아니면 더 많은 아이디어? : D –