Win11用anaconda创建gym环境
最近在看强化学习,一些案例需要用gym库,就动手安装一下。(花了整整一天的时间,各种报错…)
不了解虚拟环境的小伙伴可以看一下这个,可以对后续安装过程有一个理解,简而言之就是新创建一个容器来放第三方库,然后用这个虚拟环境的python解释器来运行代码。主要目的就是防止各种python版本和第三方库的不兼容。
什么是虚拟环境?为什么使用虚拟环境?Anaconda创建、激活、退出、删除虚拟环境
我的虚拟环境默认是下载在C盘,后来查资料才发现需要改才能放在D盘(已经踩雷…C盘爆满的小伙伴可以先修改一下)
前言:安装好anaconda
下面的操作都是在cmd下
-
设置镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free conda config --set show_channel_urls yes conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
输完以后,再次输入conda info,注意看channels URLs一栏,就多了输入的网站:
-
首先进入anaconda目录,创建gym环境
conda create -n python3913 python=3.9.13 conda create -n gym python=3.9.13
名字随便,中间的 python3913 gym是环境名(在命令行输入python就可以看到版本信息)
回车以后,会弹出y/n,当然选择y
两个都装好以后,输入
conda env list
可以看到新创建的两个环境
3.安装gym
重点中的重点,输入activate gym
,这时候就进入刚刚创建的gym环境了,但是只是名字叫gym,包还没装呢~
你会发现C:\Windows\system32前面多了(gym),变成(gym)C:\Windows\system32,就是这样,然后安装一些组件(根据需要)
如果在power shell里面没出现上述情况,就Win+R 然后进入cmd里面输入应该就可以了。
conda install pandas
conda install tensorflow
pip3 install gym matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
这时候应该不会有报错警告,进度条是#########,最后会显示 done,就OK了。
如果清华源不好用的话,试下豆瓣吧
https://pypi.douban.com/simple/
在激活成功以后,命令行前面的括号里会显示(gym),接下来,我们要更新pip,从第二行可以看出已经更新好了:
python -m pip install --upgrade pip
Requirement already satisfied: pip in c:\programdata\anaconda3\lib\site-packages (22.2.2)
接着,我们要安装gym库:
pip --default-timeout=100 install gym -i https://pypi.tuna.tsinghua.edu.cn/simple
由于Gym官方默认支持Ubuntu系统而不是windows, 所以我们选择第三方git来补丁
pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py
但是在这些安装完后,我们发现缺少pygame库,并且我们使用的是vscode,这时,就要再配置pygame:
pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple
配置好后可以用以下代码进行测试:(我用的是vscode,选择python解释器是你创建的那个gym虚拟环境就可以了)
import gym
env = gym.make('MountainCar-v0')#这个应该是导入的模型
for i_episode in range(20):
observation = env.reset()
for t in range(100):
env.render()
print(observation)
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
env.close()
由于我运行的是其他的代码,期间出现了一系列的第三方库的版本不兼容的问题又或者是版本太高的问题,各位小伙伴如果遇到这种问题就逐一解决就可以啦(就是卸载、重装…)
参考文章: