Подавить вывод консоли в python при использовании ray - предупреждения SDL - PullRequest
0 голосов
/ 21 марта 2020

Я параллельно запускаю pygame , используя ray , но хочу, чтобы подавить предупреждения / ошибки видео SDL.

Вот мой код:

@ray.remote
def run2(agent):  # same as run1 

  sys.stdout = open(os.devnull, "w")
  sys.stderr = open(os.devnull, "w") 
  os.environ["SDL_VIDEODRIVER"] = "dummy" 
  env = GameEnv(0)
  state = env.reset()
  steps =0
  done= False
  while not done:
    steps+=1
    action = agent.predict(state)
    ns , r ,done ,i= env.step(env.action_space.sample())
  return steps

# note: maybe run this twice to warmup the system
%time result = ray.get([run2.remote(pops[i]) for i in range(10)])

Я пытался изменить stdout и stderr, но это, похоже, не работает, или, может быть, я должен изменить это где-то еще. Вот предупреждение, которое я получаю для каждого работника

(pid=1128) ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
(pid=1128) ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
(pid=1128) ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
(pid=1128) ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
(pid=1128) ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
(pid=1128) ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
(pid=1128) ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: No such file or directory
(pid=1128) ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default

Есть ли способ сделать это с помощью параметра луча или глобального блока stdout?

1 Ответ

1 голос
/ 21 марта 2020

Обнаружено, что вы можете использовать:

ray.init(log_to_driver=False)

Чтобы запретить лучевым работникам регистрировать вывод.

...