我想使用MuJoCo (http://www.mujoco.org/),这是一个具有Python绑定的先进物理模拟器(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
然而,当我想使用以下简单代码导入库时:
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
我正在使用 Windows 7 64 位操作系统上的 Python 3.5.1 64 位版本,同时安装了 MuJoCo 1.31 64 位版本。
我猜测问题是由于某种不兼容性引起的,我还尝试过在 Python 3.5.2 32 位版本和 MuJoCo 1.31 32 位版本之间进行组合。甚至,我尝试了非逻辑的 32 位 Python 和 64 位 MuJoCo 的组合,以及相反情况。
MuJoCo 库中提供的已编译示例“simulate.exe”可以完美运行。因此,我猜测我拥有的 64 位 MuJoCo 库没有问题。(顺便说一下,32 位版本无法在 64 位 Windows 上运行)
因此,问题可能发生在将 C++ 库加载到 Python 上时。我进行了调试并至少检查了 mujoco_py 库中的 Python 代码,它尝试从正确的路径加载“mujoco131.lib”(虽然不是“mujoco131.dll”)。然后出现错误,代码无法继续运行。
我欢迎任何评论和建议...
祝好!愉快的一天!
print("hey") import mujoco_py print("hey")
该代码会打印出第一个“hey”,然后一直无限运行下去。您还有其它想法吗? - Orhan Sönmezconda install python=3.4
降级到 Python 3.4。conda install mingw libpython numpy
- haversineresult = mjlib.mj_activate(file_path)
更改为result = mjlib.mj_activate(file_path + '\\mjkey.txt')
。看起来它正在工作。感谢您的所有帮助。 - Orhan Sönmez