使用MuJoCo-py包为MuJoCo物理库绑定Python
Python binding for MuJoCo physics library using mujoco-py package
我想使用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:DropboxPhDMuJoComjpro131
MUJOCO_PY_MJKEY_PATH = C:DropboxPhDMuJoComjpro131bin
然而,一旦我想导入带有以下简单代码的库,
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
我在Windows 7 64位和MuJoCo 1.31 64位上使用Python 3.5.1 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"(但不是"mujoko131.dll"(。然后出现错误,代码无法继续运行。
我愿意接受任何意见和建议。。
干杯!祝你今天过得愉快!
尝试编辑mjlib.py
,在加载程序中将"bin/mujoco131.lib"
替换为"bin/mujoco131.dll"
。
我还必须在platname_targdir.py
中明确指定platname = "win"
- 创建一个函数的 Python 绑定,返回指向带有 boost 的向量的指针
- Python C 绑定 - 获取从 python 到 C++ 的数组
- 如何将 compile_commands.json 与 llvm clang (版本 7.0.1) python 绑定一
- 用于基于节点的树结构的Python绑定
- 使用 SWIG 绑定 Python/C++ 模板
- 如何仅使用 c/python API 将 c++ 成员函数绑定到 python?
- OpenCV 如何确定具有不同参数的函数的 python 绑定?
- 使用 python 绑定来检查 C++ 类型是否是规范方式的指针、引用等?
- 迭代从 SWIG 绑定返回的 python 中的 vector<pair<int,int>>
- python+libclang;来回迭代:将字段注释绑定到字段
- 生成python绑定,要使用的方法/程序
- boost.python向现有的PyObject添加绑定(对于例外处理)
- Boost.Python是否需要为其他Boost库绑定代码
- 如何使用Python绑定到Clang来解析单个文件
- 为使用OpenCV的C 代码编写Python绑定
- 使用绑定C 时,Python编译错误
- 有没有一种方法可以从python类生成一个c++类,并在编译时将其绑定
- Python / C++绑定,如何再次链接静态C ++库(portaudio)与distutils
- C/Python绑定:指针地址修改
- 使用MuJoCo-py包为MuJoCo物理库绑定Python