Linux:mujoco_py安装问题

0 安装Miniconda

用wget命令下载

wget -c https://repo.anaconda.com/miniconda/Miniconda2-latest-Linux-x86_64.sh

授予权限并且运行

chmod 777 Miniconda2-latest-Linux-x86_64.sh
sh Miniconda2-latest-Linux-x86_64.sh

安装Mujoco

mujoco-210

https://github.com/google-deepmind/mujoco/releases?page=3

修改.bashrc

安装mujoco_py

conda env list
conda create -n mujoco_py python=3.6
conda activate mujoco_py
pip intsall mujoco_py

安装spinningup(按需安装)

git clone https://github.com/openai/spinningup.git
cd spinningup
pip install -e .

安装问题处理:

0、检查conda虚拟环境的python版本是否正确
有时可能是conda环境出问题了,虚拟环境可能始终为系统默认的python版本,而不是自己设定的
建议重装conda环境。

1、在 conda 环境下 pip install mpi4py 安装 mpi4py 库时出现编译报错,报错信息为:

 line 301: x86_64-conda_cos6-linux-gnu-cc: command not found
      failure.
      removing: _configtest.c _configtest.o
      error: Cannot compile MPI programs. Check your configuration!!!
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for mpi4py
Failed to build mpi4py
ERROR: Could not build wheels for mpi4py, which is required to install pyproject.toml-based projects

所以导致该错误的原因是

x86_64-conda_cos6-linux-gnu-cc: command not found

即没有找到 x86_64-conda_cos6-linux-gnu-cc。只需执行以下命令安装即可:

conda install gcc_linux-64

安装完成后重新执行 pip install mpi4py 即可完成安装。

2、现象:终端输出类似下面的命令,并卡住不动

Building wheel for opencv-python (PEP 517) ... 

更新pip版本

pip install --upgrade pip

显示安装进程

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple --verbose

等待安装完成

windows:
教程如下:
1、https://blog.csdn.net/weixin_44377470/article/details/104910010
2、https://zhuanlan.zhihu.com/p/502112539
3、http://t.csdn.cn/OJGis
4、https://blog.csdn.net/weixin_44377470/article/details/104910010

注意:2当中,mujoco_py从github下载后进行解压,将解压后的mujoco_py复制到对应的conda环境下。

3、GLFW问题
https://blog.csdn.net/Youtian_/article/details/103841453
GLEW 错误:(这个错误比较棘手)

 ERROR GLEW initalization error: Missing GL version

按如下操作进行:

sudo apt-get install libglfw3 libglew2.0

将运行程序与显卡进行动态链接

sudo gedit ~/.bashrc                     # 在.bashrc中添加以下内容
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:
source ~/.bashrc                         # 执行生效

4、AttributeError: module ‘mujoco_py’ has no attribute 'utils’

import mujoco_py
from mujoco_py import utils #<-------修改1
import os

mj_path = utils.discover_mujoco() #<--------修改2 删除_ 和 mujoco_py
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)

sim.step()
print(sim.data.qpos)

注意:有时候显示无GLFW,如无法解决,可在终端运行
python XXXX.py

5、在Python中运行import mujoco_py,报了以下的错误:

ImportError: DLL load failed while importing cymj: The specified module could not be found.

这是因为, 从 Python 3.8 开始, 只加载受信任的 dll. 因此, 必须将安装的 mujoco 版本的位置添加到允许的 DLL 列表中:

import os
os.add_dll_directory(os.environ["USERPROFILE"] + "/.mujoco/mjpro150/bin")  # Only for Windows System
import mujoco_py

导入正常. 在之后的代码里, 为了简洁, 将省略 os.add_dll_directory
6、报错:
在这里插入图片描述

Exception: Please add mujoco library to your PATH:
set PATH=C:\User\cxy\ .mujoco\mujoco200\bin;%PATH%

●解决办法:进入C:\Users\cxy\anaconda3\envs\py37\Lib\site-packages\mujoco_py中(直接点击报错蓝字路径),修改builder.py文件,在76行下面加一句:os.environ[var]+=";"+lib_path
在这里插入图片描述
7、Cython.Compiler.Errors.CompileError: /home/yian/miniconda2/envs/mujoco/lib/p

[1/1] Cythonizing /root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/cymj.pyx

Error compiling Cython file:
------------------------------------------------------------
...
    See c_warning_callback, which is the C wrapper to the user defined function
    '''
    global py_warning_callback
    global mju_user_warning
    py_warning_callback = warn
    mju_user_warning = c_warning_callback
                       ^
------------------------------------------------------------

/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/cymj.pyx:92:23: Cannot assign type 'void (const char *) except * nogil' to 'void (*)(const char *) noexcept nogil'

Error compiling Cython file:
------------------------------------------------------------
...
    See c_warning_callback, which is the C wrapper to the user defined function
    '''
    global py_error_callback
    global mju_user_error
    py_error_callback = err_callback
    mju_user_error = c_error_callback
                     ^
------------------------------------------------------------

/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/cymj.pyx:127:21: Cannot assign type 'void (const char *) except * nogil' to 'void (*)(const char *) noexcept nogil'
Traceback (most recent call last):
  File "main.py", line 8, in <module>
    import d4rl
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/d4rl/__init__.py", line 14, in <module>
    import d4rl.locomotion
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/d4rl/locomotion/__init__.py", line 2, in <module>
    from d4rl.locomotion import ant
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/d4rl/locomotion/ant.py", line 20, in <module>
    import mujoco_py
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/__init__.py", line 2, in <module>
    from mujoco_py.builder import cymj, ignore_mujoco_warnings, functions, MujocoException
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/builder.py", line 504, in <module>
    cymj = load_cython_ext(mujoco_path)
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/builder.py", line 110, in load_cython_ext
    cext_so_path = builder.build()
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/builder.py", line 226, in build
    built_so_file_path = self._build_impl()
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/builder.py", line 278, in _build_impl
    so_file_path = super()._build_impl()
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/builder.py", line 239, in _build_impl
    dist.ext_modules = cythonize([self.extension])
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1134, in cythonize
    cythonize_one(*args)
  File "/root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1301, in cythonize_one
    raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: /root/anaconda3/envs/mujoco_env/lib/python3.8/site-packages/mujoco_py/cymj.pyx

pip install Cython==3.0.0a10

8、distutils.errors.CompileError: command ‘/usr/bin/gcc’ failed with exit code 1

分发、编译错误,原因是缺少libosmesa6-dev、patchelf用以动态链接
第一步:安装libosmesa6-dev

sudo apt install libosmesa6-dev

安装好libosmesa6-dev,如若运行测试缺少如下包,便执行第二步

第二步:安装patchelf(两个命令选一个就行)

pip install patchelf
sudo apt-get -y install patchelf

gym安装问题

问题一:

nameerror: name ‘glpushmatrix‘ is not defined

更换pyglet包的版本

pip install pyglet == 1.5.27

问题二:

obv,action,done,_=action 值太多
pip install gym==0.19.0
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值