Jupyter Notebook调用gym env.render()时内核崩溃求助
Jupyter中Gym render_mode='rgb_array'导致Python3.7崩溃的解决方法
问题背景
在Jupyter Notebook里运行Gym环境渲染代码时,只要指定render_mode='rgb_array',就会触发Python 3.7崩溃,内核直接挂掉。去掉这个参数程序能正常运行,但没法获取渲染的RGB数组,不是合理解决办法。已经尝试重装ipykernel、ipython、jupyter_client等相关包,问题依旧存在。
用到的代码:
%matplotlib inline import numpy as np import matplotlib.pyplot as plt import time import gym from gym.envs.registration import register from IPython.display import clear_output try: register( id='FrozenLakeNotSlippery-v0', #Name this whatever you want entry_point='gym.envs.toy_text:FrozenLakeEnv', kwargs={'map_name' : '4x4', 'is_slippery': False}, max_episode_steps=100, reward_threshold=0.78, # optimum = .8196 ) except: print("Already Registered") env = gym.make("FrozenLakeNotSlippery-v0",render_mode='rgb_array') env.reset() for step in range(5): env.render() action = env.action_space.sample() observation, reward, terminated, truncated, info = env.step(action) time.sleep(0.5) print(observation) clear_output(wait=True) if terminated: env.reset() env.close()
可行解决办法
手动用Matplotlib渲染RGB数组
不依赖env.render()的内部渲染逻辑,直接获取它返回的RGB数组,用Matplotlib交互式绘图显示。修改循环部分代码:env = gym.make("FrozenLakeNotSlippery-v0", render_mode='rgb_array') obs = env.reset() plt.ion() # 开启交互式模式 fig, ax = plt.subplots() img = ax.imshow(env.render()) for step in range(5): # 更新图像数据 img.set_data(env.render()) fig.canvas.draw() fig.canvas.flush_events() action = env.action_space.sample() observation, reward, terminated, truncated, info = env.step(action) time.sleep(0.5) print(observation) clear_output(wait=True) if terminated: obs = env.reset() plt.ioff() env.close()升级Gym或切换到Gymnasium
旧版Gym在Jupyter环境下的rgb_array渲染存在兼容性bug,试试升级到最新版Gym,或者切换到Gymnasium(Gym的官方维护分支):pip install --upgrade gym # 或者安装Gymnasium pip install gymnasium切换到Gymnasium后,代码需要微调导入路径和部分API,比如
import gymnasium as gym。升级Python版本
Python 3.7的兼容性不如新版本,很多用户反馈把Python升到3.8及以上(比如3.9、3.10)后,这个崩溃问题直接消失。更新渲染相关依赖
确保pygame、matplotlib这些和渲染有关的包是最新版本,旧版本可能和Gym存在冲突:pip install --upgrade pygame matplotlib
内容的提问来源于stack exchange,提问作者Jm3s
相关产品推荐
相关产品推荐

