Ubuntu 16.04下mujoco_py提示LD_LIBRARY_PATH路径缺失求助
解决mujoco_py导入时LD_LIBRARY_PATH已设置但仍报错的问题
我之前也碰到过一模一样的情况——明明已经把路径加到bashrc里,终端能查到LD_LIBRARY_PATH的正确值,mujoco自带的simulate也能正常运行,但一导入mujoco_py就报错。这大概率是Python进程没正确继承shell环境变量,或是版本兼容性问题,给你几个亲测有效的解决办法:
方法1:在Python脚本里强制设置环境变量
有时候bashrc里的配置不会自动传到Python进程中,你可以直接在代码开头手动指定路径:
import os # 把mujoco的bin目录加到环境变量里 os.environ['LD_LIBRARY_PATH'] = '/home/jonah/.mujoco/mjpro150/bin:' + os.environ.get('LD_LIBRARY_PATH', '') import mujoco_py
这样能确保Python进程启动时就拿到正确的路径,再导入mujoco_py试试。
方法2:运行Python前手动加载环境变量
如果不想修改代码,可以在终端先执行导出命令,再启动Python:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jonah/.mujoco/mjpro150/bin python your_script.py
嫌麻烦的话可以把这两行写成一个shell脚本,直接运行脚本启动程序。
方法3:匹配mujoco和mujoco_py的版本
mjpro150对应的mujoco_py版本必须是1.50.x系列,如果你装的是2.0以上的mujoco_py,肯定会出现不兼容问题。先卸载当前版本,指定安装对应版本:
pip uninstall mujoco_py pip install mujoco_py==1.50.1.68
1.50.x的任意子版本都可以,选一个相对稳定的就行。
方法4:重新编译mujoco_py
有时候安装过程中编译不完整也会导致这种奇怪的报错,你可以删除缓存后重新安装:
pip uninstall mujoco_py rm -rf ~/.cache/mujoco_py pip install mujoco_py==1.50.1.68 --no-cache-dir
编译时如果提示缺少依赖(比如gcc、libgl1-mesa-dev这类),按照提示安装即可。
既然你能正常运行./simulate,说明mujoco本身是没问题的,问题就出在mujoco_py和环境变量的衔接上。如果以上方法都没用,那确实有可能是特定版本的bug,可以试试切换到mujoco_py 1.50.1.60这个版本,我之前碰到类似bug时换这个版本就解决了。
内容的提问来源于stack exchange,提问作者J. Siek




