我的环境是:
参考这篇知乎M1芯片Mac上Homebrew安装教程 - 知乎就够了,很无敌。我选择了ARM版本和X86版本brew的共存,从macOS Catalina
(10.15.x) 版开始,Mac
使用zsh
作为默认Shell
,所以我直接将下面的
alias abrew='arch -arm64 /opt/homebrew/bin/brew' # apple
alias ibrew='arch -x86_64 /usr/local/bin/brew' # intel
添加到了/.zshrc中,这样每次开Terminal就会自动定义好啦。为什么是添加在/.zshrc可以参考MAC 设置环境变量PATH 和 查看PATH - 简书,大概是这个文件在启动Terminal时会自动执行。
网址:GitHub - conda-forge/miniforge: A conda-forge distribution.
下载arm64这个版本,我们也可以发现上面说明了base environment中要安装Python 3.9.
可以参考Apple MacBook M1 Anaconda安装 Tensorflow_快乐小码农的博客-CSDN博客_mac安装tensorflow2.0的方法一。
我是直接单击下载,然后
cd ~/Download
bash Miniforge3-MacOSX-arm64.sh
这里悠着点回车,慢慢看,一直选yes就好了。
总体的环境配置参考这个Issue:Support MuJoCo 2.1.1 (including arm64 mac support) · Issue #662 · openai/mujoco-py · GitHub,非常酷。
支持的是MuJoCo 2.1.1!!
首先,下载mujoco-2.1.1-macos-universal2.dmg,我直接Google这个文件,找到之后直接下载(参考回答Support MuJoCo 2.1.1 (including arm64 mac support) · Issue #662 · openai/mujoco-py · GitHub)
打开该dmg文件,你会看到
接着,将MuJoCo.app拷贝到/Applications中,直接拖进去就可以了。
再跟着issue中的步骤:
mkdir -p $HOME/.mujoco/mujoco210 # Remove existing installation if any
ln -sf /Applications/MuJoCo.app/Contents/Frameworks/MuJoCo.framework/Versions/Current/Headers/ $HOME/.mujoco/mujoco210/include
mkdir -p $HOME/.mujoco/mujoco210/bin
ln -sf /Applications/MuJoCo.app/Contents/Frameworks/MuJoCo.framework/Versions/Current/libmujoco.2.1.1.dylib $HOME/.mujoco/mujoco210/bin/libmujoco210.dylib
ln -sf /Applications/MuJoCo.app/Contents/Frameworks/MuJoCo.framework/Versions/Current/libmujoco.2.1.1.dylib /usr/local/lib/
# For M1 (arm64) mac users:
# The released binary doesn't ship glfw3, so need to install on your own
brew install glfw
ln -sf /opt/homebrew/lib/libglfw.3.dylib $HOME/.mujoco/mujoco210/bin
原issue中没有提到安装gcc-11,我这里补充一下
abrew install gcc@11 # abrew见我配置Homebrew时自定义的alias
然后接着
export CC=/opt/homebrew/bin/gcc-11 # see https://github.com/openai/mujoco-py/issues/605
pip install mujoco-py && python -c 'import mujoco_py'
接下来是conda创建虚拟环境了,我直接参考cs285 2021fall的homework_fall2021/installation.md at main · berkeleydeeprlcourse/homework_fall2021 · GitHub,但是因为这个配置比较老了,所以我是这样搞的
# Create a conda environment that will contain python 3
conda create -n cs285 python=3.9
# activate cs285
conda activate cs285
查看hw1/requirements.txt中的那些packages,然后手动pip install新版本,因为有一些老版本可能没有适配Apple Silicon. 比如我遇到的Matplotlib,matplotlib 3.5.0之后才开始适配,E.g.
pip install matplotlib==3.5.0
下面我就列一下我安装的版本
numpy==1.22.3
gym==0.23.1
tensorboard==2.3.0
tensorboardX==1.8
matplotlib==3.5.0
ipython==6.4.0
moviepy==1.0.0
pyvirtualdisplay==1.3.2
torch==1.9.0
opencv-python==4.5.5.64
ipdb==0.13.3
box2d-py==2.3.8
最后
# Allow your code to be able to see 'cs285'
cd <path_to_hw1>
pip install -e .
因为版本不一样,所以有一些之前可以的用法现在已经用不了了,最终要跑起来还需要自己debug project中的代码,这里就不多讲了。