pygame窗口无法使用env.close()关闭
我一直在尝试在我的本地电脑(Intel Mac OS)上设置强化学习环境,但我一直遇到pygame窗口的问题。系统不让我通过env.close()这个函数关闭pygame窗口。
这是我的main.py文件。
import os
import gym
from stable_baselines3 import PPO
from stable_baselines3.common.vec_env import DummyVecEnv
from stable_baselines3.common.evaluation import evaluate_policy
env_name = 'CartPole-v1'
env = gym.make(env_name, render_mode="human")
for episode in range(1, 11):
score = 0
state = env.reset()
done = False
while not done:
env.render()
action = env.action_space.sample()
n_state, reward, done, info, _ = env.step(action)
score += reward
print('Episode:', episode, 'Score:', score)
env.close()
我在多个开发环境和不同版本的Python上测试过,但现在我不知道该怎么办。唯一能关闭它的方法就是在Jupyter Notebook上重启内核,或者在PyCharm上重新运行脚本。我希望能得到一些建议来解决这个问题。
我能够在不使用render_mode="human"的情况下获取分数值,但显示窗口不会出现,除非我设置了特定的render_mode。我不太明白为什么其他YouTube教程中的渲染显示能够弹出来。
这是从PyCharm运行代码的输出示例。
/opt/anaconda3/envs/cartpole/lib/python3.8/site-packages/gym/utils/passive_env_checker.py:233: DeprecationWarning: `np.bool8` is a deprecated alias for `np.bool_`. (Deprecated NumPy 1.24)
if not isinstance(terminated, (bool, np.bool8)):
Episode: 1 Score: 25.0
Episode: 2 Score: 21.0
Episode: 3 Score: 24.0
Episode: 4 Score: 37.0
Episode: 5 Score: 33.0
Episode: 6 Score: 25.0
Episode: 7 Score: 20.0
Episode: 8 Score: 22.0
Episode: 9 Score: 10.0
Episode: 10 Score: 21.0
env.close()
虽然我添加了另一个env.close()函数,但pygame窗口还是没有关闭。如果我漏掉了什么,请告诉我。我非常感谢你的帮助。
0 个回答
暂无回答