[Python] SUMO RL : 'module’ object is not callable

Discussão em 'Python' iniciado por Stack, Junho 10, 2025.

  1. Stack

    Stack Membro Participativo

    When I run the following code i get error 'module' object is not callable

    if __name__ == "__main__":
    env_name = "4x4grid"
    register_env(
    env_name,
    lambda _: ParallelPettingZooEnv(
    sumo_rl.parallel_env(
    net_file="./4x4-Lucas/4x4.net.xml",
    route_file="./4x4-Lucas/4x4c1c2c1c2.rou.xml",
    out_csv_name="outputs/4x4grid/ppo",
    use_gui=False,
    num_seconds=80000,
    )
    ),
    )

    config = (
    PPOConfig()
    .environment(env=env_name, disable_env_checking=True)
    )

    config.env_runners(num_env_runners=4, rollout_fragment_length=128)
    config.training(
    train_batch_size=512,
    use_gae=True,
    grad_clip=None,
    num_epochs=10)
    config.debugging(log_level="ERROR")
    config.framework(framework="torch")
    config.resources(num_gpus=int(os.environ.get("RLLIB_NUM_GPUS", "0")))

    tune.run(
    "PPO",
    name="PPO",
    stop={"timesteps_total": 100000},
    checkpoint_freq=10,
    storage_path="~/ray_results/" + env_name,
    config=config.to_dict(),
    )


    (SingleAgentEnvRunner pid=11388) Exception raised in creation task: The actor died because of an error raised in its creation task, ray::SingleAgentEnvRunner.__init__() (pid=11388, ip=127.0.0.1, actor_id=a44169f772470169f85ced2001000000, repr=<ray.rllib.env.single_agent_env_runner.SingleAgentEnvRunner object at 0x000002620CC666F0>)
    (SingleAgentEnvRunner pid=11388) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    (SingleAgentEnvRunner pid=11388) File "C:\Users\thaigiang\AppData\Local\Temp\ipykernel_12400\3020126705.py", line 17, in <lambda>
    (SingleAgentEnvRunner pid=11388) File "C:\Users\thaigiang\anaconda3\Lib\site-packages\pettingzoo\utils\conversions.py", line 14, in par_fn
    (SingleAgentEnvRunner pid=11388) env = env_fn(**kwargs)
    (SingleAgentEnvRunner pid=11388) ^^^^^^^^^^^^^^^^
    (SingleAgentEnvRunner pid=11388) File "C:\Users\thaigiang\anaconda3\Lib\site-packages\sumo_rl\environment\env.py", line 32, in env
    (SingleAgentEnvRunner pid=11388) env = SumoEnvironmentPZ(**kwargs)
    (SingleAgentEnvRunner pid=11388) ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    (SingleAgentEnvRunner pid=11388) File "C:\Users\thaigiang\anaconda3\Lib\site-packages\sumo_rl\environment\env.py", line 523, in __init__
    (SingleAgentEnvRunner pid=11388) self._agent_selector = agent_selector(self.agents)
    (SingleAgentEnvRunner pid=11388) ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    (SingleAgentEnvRunner pid=11388) TypeError: 'module' object is not callable


    Environment:
    ray[rllib]==2.44.1
    python==3.12.7
    torch==2.7.0

    I have researched and found that the error may arise during the env register process, parallel_env may be a module and not a function. but I don't know how to solve the error.

    Continue reading...

Compartilhe esta Página