RandomTrips.py bleibt unter Windows auf unbestimmte Zeit hängen; Ausgaben werden erst nach erzwungener Beendigung geschrPython

Python-Programme
Anonymous
 RandomTrips.py bleibt unter Windows auf unbestimmte Zeit hängen; Ausgaben werden erst nach erzwungener Beendigung geschr

Post by Anonymous »

Ich baue eine agentische KI rund um SUMO mit Python (TraCI + randomTrips.py) unter Windows auf.
Ich stehe vor einem Problem, bei dem

Code: Select all

randomTrips.py
bleibt während der Traffic-Generierung auf unbestimmte Zeit hängen[/b], wenn es programmgesteuert über Python ausgeführt wird. Der Prozess wird niemals von selbst beendet und nur beendet, wenn er durch eine Zeitüberschreitung beendet wird.
Beobachtetes Verhalten
  • Code: Select all

    netconvert
    wird normal abgeschlossen und generiert .net.xml
  • Code: Select all

    randomTrips.py
    startet, wird aber nie beendet
  • Code: Select all

    .trips.xml
    und .rou.xml werden erst generiert, nachdem der Prozess zwangsweise beendet wurde
  • Während der normalen Ausführung wird nur .net.xml erstellt
  • Auf stdout oder stderr werden keine Fehler angezeigt
Erwartet Verhalten

Code: Select all

randomTrips.py
sollte nach dem Generieren der Fahrten/Routen sauber enden.
Was ich versucht habe
  • Entfernt --validate
  • stdout/stderr in Dateien umgeleitet
  • Explizit hinzugefügt subprocess.run(timeout=…)
  • Verifizierter SUMO_HOME und PATH enthalten SUMO-Binärdateien
  • Bestätigter Durouter ist verfügbar
Der Hang bleibt bestehen.
Code

Code: Select all

randomTrips.py
(von SUMO bereitgestellt):[/b]

https://raw.githubusercontent.com/eclip ... omTrips.py
Mein Python-Code (Hangpoint inline kommentiert):

Code: Select all

@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}"

sumo_bin = os.path.join(sumo_home, "bin")

env = os.environ.copy()
env["SUMO_HOME"] = sumo_home
env["PATH"] += os.pathsep + sumo_bin

net_file = f"{output_name}.net.xml"
trip_file = f"{output_name}.trips.xml"
route_file = f"{output_name}.rou.xml"
config_file = f"{output_name}.sumocfg"
log_path = "map_generation.log"

try:
with open(log_path, "w") as log_file:
if not os.path.exists(net_file):
log_file.write(f"Converting {osm_file_path}...\n")
log_file.flush()
netconvert_cmd = [
os.path.join(sumo_bin, "netconvert"),
"--osm-files", osm_file_path,
"-o", net_file,
"--geometry.remove", "--ramps.guess", "--tls.guess"
]
subprocess.run(
netconvert_cmd,
env=env,
stdout=log_file,
stderr=log_file,
check=True,
timeout=60
)
else:
log_file.write("Net file already exists, skipping conversion.\n")

traffic_status = "Traffic generated."
route_file_entry = f''

try:
#STOPS HERE
log_file.write("Generating random traffic...\n")
log_file.flush()
random_trips_script = os.path.join(sumo_home, "tools", "randomTrips.py")

traffic_cmd = [
sys.executable, random_trips_script,
"-n", net_file,
"-e", "120",
"-o", trip_file,
"--route-file", route_file,
"--validate"
]

subprocess.run(
traffic_cmd,
env=env,
stdout=log_file,
stderr=log_file,
check=True,
timeout=45
)

except subprocess.TimeoutExpired:
traffic_status = "Warning: Traffic generation timed out.  Loading empty map."
log_file.write("\n!!! TIMEOUT: Traffic generation killed. !!!\n")
route_file_entry = ""
except Exception as e:
traffic_status = f"Warning: Traffic generation failed ({e}). Loading empty map."
log_file.write(f"\n!!! ERROR: {e} !!!\n")
route_file_entry = ""

config_content = f"""


{route_file_entry}





"""

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)}"
Frage
Ist das ein bekanntes Problem mit randomTrips.py unter Windows, wenn es über einen Unterprozess aufgerufen wird?

Wie rufe ich randomTrips.py richtig auf, damit es sauber beendet wird, wenn es programmgesteuert verwendet wird?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post