oxwhirl / pymarl

Python Multi-Agent Reinforcement Learning framework
Apache License 2.0
1.87k stars 384 forks source link

RuntimeError: Trying to run '/pymarl/3rdparty/StarCraftII/Versions/Base71663/SC2_x64', but it isn't executable. #126

Open brownsugar123 opened 2 years ago

brownsugar123 commented 2 years ago

When i enter this command I got this error: bash run.sh 'GPU' python3 src/main.py --config=qmix --env-config=sc2 with env_args.map_name=2s3z

((src/main.py:79: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  config_dict = yaml.load(f)
src/main.py:49: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  config_dict = yaml.load(f)
[INFO 07:54:22] root Saving to FileStorageObserver in results/sacred.
[DEBUG 07:54:23] pymarl Using capture mode "fd"
[INFO 07:54:23] pymarl Running command 'my_main'
[INFO 07:54:23] pymarl Started run with ID "6"
[DEBUG 07:54:23] my_main Started
[WARNING 07:54:23] my_main CUDA flag use_cuda was switched OFF automatically because no CUDA devices are available!
[INFO 07:54:23] my_main Experiment Parameters:
[INFO 07:54:23] my_main

{   'action_selector': 'epsilon_greedy',
    'agent': 'rnn',
    'agent_output_type': 'q',
    'batch_size': 32,
    'batch_size_run': 1,
    'buffer_cpu_only': True,
    'buffer_size': 5000,
    'checkpoint_path': '',
    'critic_lr': 0.0005,
    'double_q': True,
    'env': 'sc2',
    'env_args': {   'continuing_episode': False,
                    'debug': False,
                    'difficulty': '7',
                    'game_version': None,
                    'heuristic_ai': False,
                    'heuristic_rest': False,
                    'map_name': '2s3z',
                    'move_amount': 2,
                    'obs_all_health': True,
                    'obs_instead_of_state': False,
                    'obs_last_action': False,
                    'obs_own_health': True,
                    'obs_pathing_grid': False,
                    'obs_terrain_height': False,
                    'obs_timestep_number': False,
                    'replay_dir': '',
                    'replay_prefix': '',
                    'reward_death_value': 10,
                    'reward_defeat': 0,
                    'reward_negative_scale': 0.5,
                    'reward_only_positive': True,
                    'reward_scale': True,
                    'reward_scale_rate': 20,
                    'reward_sparse': False,
                    'reward_win': 200,
                    'seed': 878682753,
                    'state_last_action': True,
                    'state_timestep_number': False,
                    'step_mul': 8},
    'epsilon_anneal_time': 50000,
    'epsilon_finish': 0.05,
    'epsilon_start': 1.0,
    'evaluate': False,
    'gamma': 0.99,
    'grad_norm_clip': 10,
    'hypernet_embed': 64,
    'hypernet_layers': 2,
    'label': 'default_label',
    'learner': 'q_learner',
    'learner_log_interval': 10000,
    'load_step': 0,
    'local_results_path': 'results',
    'log_interval': 10000,
    'lr': 0.0005,
    'mac': 'basic_mac',
    'mixer': 'qmix',
    'mixing_embed_dim': 32,
    'name': 'qmix',
    'obs_agent_id': True,
    'obs_last_action': True,
    'optim_alpha': 0.99,
    'optim_eps': 1e-05,
    'repeat_id': 1,
    'rnn_hidden_dim': 64,
    'runner': 'episode',
    'runner_log_interval': 10000,
    'save_model': False,
    'save_model_interval': 2000000,
    'save_replay': False,
    'seed': 878682753,
    't_max': 2050000,
    'target_update_interval': 200,
    'test_greedy': True,
    'test_interval': 10000,
    'test_nepisode': 32,
    'use_cuda': False,
    'use_tensorboard': False}

[INFO 07:55:06] my_main Beginning training for 2050000 timesteps
[ERROR 07:55:06] pymarl Failed after 0:00:43!
Traceback (most recent calls WITHOUT Sacred internals):
  File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "src/main.py", line 35, in my_main
    run(_run, config, _log)
  File "/pymarl/src/run.py", line 48, in run
    run_sequential(args=args, logger=logger)
  File "/pymarl/src/run.py", line 166, in run_sequential
    episode_batch = runner.run(test_mode=False)
  File "/pymarl/src/runners/episode_runner.py", line 49, in run
    self.reset()
  File "/pymarl/src/runners/episode_runner.py", line 45, in reset
    self.env.reset()
  File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 403, in reset
    self._launch()
  File "/usr/local/lib/python3.5/dist-packages/smac/env/starcraft2/starcraft2.py", line 324, in _launch
    window_size=self.window_size, want_rgb=False
  File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/platforms.py", line 205, in start
    want_rgb=want_rgb, extra_args=extra_args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/run_configs/platforms.py", line 88, in start
    self, exec_path=exec_path, version=self.version, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/sc_process.py", line 87, in __init__
    self._check_exists(exec_path)
  File "/usr/local/lib/python3.5/dist-packages/pysc2/lib/sc_process.py", line 194, in _check_exists
    "Trying to run '%s', but it isn't executable." % exec_path)
RuntimeError: Trying to run '/pymarl/3rdparty/StarCraftII/Versions/Base71663/SC2_x64', but it isn't executable.))

My computer system is win10 x64, and my StarCraft 2 version is 4.8.2.How to fix it,please help!!!!

brownsugar123 commented 2 years ago

I thought it was a problem with the StarCraft 2 version. I tried both versions 4.8.2 and 4.10, but this problem occurred.

dooliu commented 1 year ago

In Linux, 'chmod +x /home/tsou/StarCraftII/Versions/Base55958/SC2_x64' may work.

dooliu commented 1 year ago

Reference: https://github.com/oxwhirl/smac/issues/60