зависает на неопределенный срок[/b] во время генерации трафика при программном выполнении через Python. Процесс никогда не завершается сам по себе и завершается только по истечении времени ожидания.
Наблюдаемое поведение
Я создаю [b]агент ИИ на основе SUMO с использованием Python (TraCI + randomTrips.py)[/b] в [b]Windows[/b]. Я столкнулся с проблемой, при которой [b][code]randomTrips.py[/code] зависает на неопределенный срок[/b] во время генерации трафика при программном выполнении через Python. Процесс никогда не завершается сам по себе и завершается только по истечении времени ожидания. Наблюдаемое поведение [list] [*][code]netconvert[/code] завершается нормально и генерирует .net.xml
[*][code]randomTrips.py[/code] запускается, но [b]никогда не завершает работу[/b]
[*][code].trips.xml[/code] и .rou.xml генерируются [b]только после принудительного завершения процесса[/b]
[*]Во время нормального выполнения создается только .net.xml
[*]Ошибки не появляются на стандартном выводе или stderr
[/list] Ожидается поведение [code]randomTrips.py[/code] должен корректно завершать работу после создания поездок/маршрутов. То, что я пробовал [list] [*]Удалено --validate
[*]Перенаправлено stdout/stderr в файлы
[*]Добавлено явно subprocess.run(timeout=…)
[*]Проверено, что SUMO_HOME и PATH включают двоичные файлы SUMO
[*]Подтверждено, что duarouter доступен
[/list] Зависание сохраняется постоянно. Код [b][code]randomTrips.py[/code] (предоставлено SUMO):[/b]
Необработанный код: https://raw.githubusercontent.com/eclipse-sumo/sumo/refs/heads/main/tools/randomTrips.py Прямой код: https://github.com/eclipse-sumo/sumo/blob/main/tools/randomTrips.py [b]Мой код Python (точка зависания с комментариями):[/b] [code]@mcp.tool() def import_osm_map(osm_file_path: str, output_name: str = "osm_map"): sumo_home = r"C:\Program Files (x86)\Eclipse\Sumo" if not os.path.exists(sumo_home): return f"Error: SUMO_HOME not found at {sumo_home}"
with open(config_file, "w") as f: f.write(config_content)
return f"Map Ready! {traffic_status} See '{log_path}' for details. Config: '{config_file}'"
except Exception as e: return f"System Error: {str(e)}" [/code] Вопрос Известна ли это проблема с randomTrips.py в Windows при вызове через подпроцесс?
Как правильно вызывать randomTrips.py, чтобы он [b]завершался правильно[/b] при программном использовании?