通过py文件打开sumo,还可以对sumo中一些文件进行配置。
如果显示
import traci
ModuleNotFoundError: No module named 'traci'
或者import traci、from sumolib import checkBinary报错,那就是因为没有按照下述步骤实现;
1、找到python或Anaconda3(根据自己python安装)情况来定
2、找到traci.pth
3、利用记事本打开traci.pth,将自己SUMO目录下的tools路径放置里面
PS:如果发现你没有管理员权限进行修改,你可以先将文件复制在桌面,然后修改完之后进行代替就行。
最后在你所需运行的sumo文件创建py文件即可。注意代码的打开路径
import traci
import os
import time
import sys
from sumolib import checkBinary
if "SUMO_HOME" in os.environ:
tools = os.path.join(os.environ['SUMO_HOME'],'tools')
sys.path.append(tools)
else:
sys.exit("please declare environment variable 'SUMO_HOME'")
#相关的配置的声明,比如运行的是哪一个sumocfg,
#是否要有GUI(Graphical User Interface 图形化用户接口)
show_gui = True
sumoconfig_path = r'D:/new_project/vehicle/test_02/map.sumo.cfg'
if not show_gui:
sumoBinary = checkBinary('sumo')
else:
sumoBinary = checkBinary('sumo-gui')
traci.start([sumoBinary,'-c',sumoconfig_path])
for step in range(0,200):
time.sleep(1)
#操控时间
traci.simulationStep(step + 1)
simulation_current_time=traci.simulation.getTime()
print("仿真时间是",simulation_current_time)
#获取所有车的ID
all_vehicle_id = traci.vehicle.getIDList()
#获取所有车的position
all_vehicle_position = [(i,traci.vehicle.getPosition(i))for i in all_vehicle_id]
#获取所有车是否经过过车线
print(all_vehicle_position)
traci.close()
py文件运行自动打开sumo的cfg文件
第一次写文章,如有不全请多多包涵。