2016-08-04 7 views
7

का उपयोग कर म्यूजको भौतिकी लाइब्रेरी के लिए पाइथन बाध्यकारी मैं माइजोको (http://www.mujoco.org/), पायथन बाइंडिंग (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 

मैं एक अजगर का उपयोग कर रहा 3.5.1 MuJoCo 1.31 64-बिट के साथ एक विंडोज 7 64 बिट पर 64-बिट।

मैंने अनुमान लगाया कि समस्या किसी प्रकार की असंगतता के कारण है, मैंने भी म्यूज़ो 1.31 32-बिट के साथ पायथन 3.5.2 32-बिट की कोशिश की। यहां तक ​​कि, मैंने गैर-लॉजिकल 32-बिट पायथन और 64-बिट मुजोको संयोजन और इसके विपरीत प्रयास किया।

MuJoCo लाइब्रेरी में पहले से संकलित उदाहरण "simulate.exe" पूरी तरह से काम करता है। तो, मुझे लगता है कि मेरे पास 64-बिट MuJoCo लाइब्रेरी में कोई समस्या नहीं है। (वैसे, 32-बिट संस्करण 64-बिट विंडोज़ पर नहीं चलता है)

तो, समस्या शायद सी ++ लाइब्रेरी को पायथन में लोड करते समय होनी चाहिए। मैंने डीबग किया और कम से कम जांच की कि mujoco_py लाइब्रेरी में पायथन कोड सही पथ से "mujoco131.lib" (हालांकि "mujoco131.dll" नहीं) लोड करने का प्रयास करता है। और फिर त्रुटि होती है और कोड आगे चलाने में विफल रहता है।

मैं टिप्पणियों और सुझावों के किसी भी प्रकार के लिए खुला रहा हूँ ..

चीयर्स! ओैर आपका दिन शुभ हो!

उत्तर

4

mjlib.py संपादित करने का प्रयास करें, "bin/mujoco131.lib" को लोडर में "bin/mujoco131.dll" के साथ बदल दें।

मैं भी स्पष्ट रूप से platname_targdir.py

+0

में परिवर्तन वास्तव में त्रुटि (यों) से बचने के लिए मदद की platname = "win" निर्दिष्ट करने के लिए किया था। बहुत बहुत धन्यवाद। लेकिन अब आयात बिना किसी त्रुटि के लटकता है। 'प्रिंट (" हे ")' ' आयात mujoco_py' ' प्रिंट ("हे") ' इस कोड को प्रिंट तो पहले" हे "और हमेशा के लिए .. किसी भी आगे विचारों चलाने पर रखता है? –

+0

हो सकता है कि आप 'कोंडा इंस्टॉल पायथन = 3.4' ' कोंडा इंस्टॉल mingw libpython numpy' – haversine

+0

के माध्यम से पाइथन 3.4 को डाउनग्रेड करने का प्रयास करना चाहें, लेकिन सुझाव के लिए धन्यवाद लेकिन अभी भी काम नहीं कर रहा है। मुझे लगता है कि यह एक विन्यास समस्या है हालांकि .. यदि यह आपके लिए काम कर रहा है, तो क्या आप निर्भर पुस्तकालयों के संस्करण लिख सकते हैं .. या अधिक विचार? : डी –