windows 10、Python 3.6 環境下安裝OpenAI Gym
OpenAI Gym發布兩年以來,官方一直沒有給出windows版支持。而我只有一台普通的win10台式機,之前一直通過虛擬機上安裝Ububtu來學習該框架,但是無奈電腦太差,而且虛擬機下不支持CUDA,只好想辦法解決windows下安裝gym的問題。
今天無意中看到OpenAI Gym 在windows下的配置和使用介紹的安裝方法,但是存在如下問題:
- 作者僅在python2.7的環境下安裝成功;
- 對於錯誤「NameError: name PUINT is not defined」的解決不太友好
- 安裝PyOpenGL的過程過於複雜
- Box2D沒有安裝
我經過研究,在該python2.7(Anaconda)環境下解決了上述問題
- 錯誤2可通過NameError: name PUINT is not defined介紹的方式解決,僅僅需要在PUINT所在處的上一行增加『PUINT = POINTER(UINT)』即可解決
- 安裝PyOpenGl只需要運行conda install pyopengl
- Box2D僅需要從Python Extension Packages for Windows下載對應的Box2D包,然後通過pip的方式安裝即可。
安裝過程
但是我比較希望使用python3,所以嘗試了下python3.6(Anaconda3 5.1.0)下安裝的過程,發現很成功。以下對安裝過程做簡要介紹,其中部分代碼來自於OpenAI Gym 在windows下的配置和使用,後文不再逐個說明。
首先安裝最小化的gym,在cmd下運行:
pip install gym -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
然後執行以下測試代碼:
import gymtest_envs={algorithm:Copy-v0, toy_text:FrozenLake-v0, control:CartPole-v0, # option:MountainCar-v0 atari:SpaceInvaders-v0,# options:Breakout-ram-v4,Seaquest-v0, mujoco:Humanoid-v1, # not feasible on Win10 box2d:LunarLander-v2 } # not feasible on Win10game_name = test_envs[algorithm]env = gym.make(game_name)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
其中『algorithm』和『toy_text』的測試沒有問題。
前文中在python2.7的環境下遇到的『PUINT』和PyOpenGL問題在這裡沒有遇到,可能新裝的Anaconda已經默認安裝了PyOpenGL,如果沒有安裝的話,通過conda install pyopengl安裝即可。
遇到的問題
Traceback (most recent call last): File "D:CodingAnaconda3libsite-packagesgymenvsclassic_control
endering.py", line 143, in __del__ File "D:CodingAnaconda3libsite-packagesgymenvsclassic_control
endering.py", line 62, in close File "D:CodingAnaconda3libsite-packagespygletwindowwin32\__init__.py", line 305, in close File "D:CodingAnaconda3libsite-packagespygletwindow\__init__.py", line 770, in closeImportError: sys.meta_path is None, Python is likely shutting down
該錯誤似乎並沒有實質性的影響,但是留著它很令人難受。
我雖然找到了別人的討論ImportError: sys.meta_path is None, Python is likely shutting down · Issue #893 · openai/gym,但是沒有看懂他們的解決辦法,而且他們好像是在linux下遇到的該錯誤。希望有人看懂該解決方法後告訴我。。。
鑒於該錯誤並沒有太大影響,我用了一種極端的方式去除它。
找到錯誤所在代碼:
Anaconda3libsite-packagesgymenvsclassic_control
endering.py, line 62.
錯誤代碼如下:
def close(self): self.window.close()
然後用try...except包裹起來:
def close(self): try: self.window.close() except: pass
後面遇到相同錯誤時,我都是這樣解決的。
安裝Atari
pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py -i https://pypi.tuna.tsinghua.edu.cn/simple/
安裝Box2D
從Python Extension Packages for Windows下載相應的whl文件。
我下載的是Box2D?2.3.2?cp36?cp36m?win_amd64.whl。
然後通過pip的方式安裝即可。
至於mujoco,我尚沒有找到辦法安裝。
推薦閱讀:
※親手教的AI總是放心些
※他這個Z炮是怎麼壓到我的?——OpenAI解釋Dota2AI的實現過程
※強化學習快速上手:編寫自定義通用gym環境類+主流開源強化學習框架調用
※Ciyous Note: 遺傳演算法與進化策略
※熵最大化和智能行為
TAG:OpenAI | 強化學習ReinforcementLearning | 人工智慧 |