首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在声明SUMO_HOME时遇到问题

在声明SUMO_HOME时遇到问题
EN

Stack Overflow用户
提问于 2019-07-30 00:02:43
回答 2查看 3.1K关注 0票数 1

我正在尝试运行一个测试python代码来使用traci库,它正在返回“请声明环境SUMO_HOME”。

我在Ubuntu18.4.2和Sumo 0.32.0上,在运行export SUMO_HOME=/home/gustavo/Downloads/sumo-0.32.0/tools/之前我解决了这个问题,但是这次它无法解决这个问题。因此,我尝试使用os库实现python文件中的一行,提供相同的命令,但是代码本身:os.system("export SUMO_HOME=/home/gustavo/Downloads/sumo-0.32.0/tool/")和它也不起作用,所以来这里寻求帮助。你们谁能帮我吗?

代码语言:javascript
复制
import os
import sys
import optparse

os.system("export SUMO_HOME=/home/gustavo/Downloads/sumo-0.32.0/tool/")
# we need to import some python modules from the $SUMO_HOME/tools directory
if 'SUMO_HOME' in os.environ:
    tools = os.path.join(os.environ['SUMO_HOME=/home/gustavo/Downloads/sumo-0.32.0/tools/'], 'tools')
    sys.path.append(tools)
else:
    sys.exit("please declare environment variable 'SUMO_HOME'")


from sumolib import checkBinary  # Checks for the binary in environ vars
import traci


def get_options():
    opt_parser = optparse.OptionParser()
    opt_parser.add_option("--nogui", action="store_true",
                         default=False, help="run the commandline version of sumo")
    options, args = opt_parser.parse_args()
    return options


# contains TraCI control loop
def run():
    step = 0
    while traci.simulation.getMinExpectedNumber() > 0:
        traci.simulationStep()
        print(step)
        step += 1

    traci.close()
    sys.stdout.flush()


# main entry point
if __name__ == "__main__":
    options = get_options()

    # check binary
    if options.nogui:
        sumoBinary = checkBinary('sumo')
    else:
        sumoBinary = checkBinary('sumo-gui')

    # traci starts sumo as a subprocess and then this script connects and runs
    traci.start([sumoBinary, "-c", "demo.sumocfg",
                             "--tripinfo-output", "tripinfo.xml"])
    run()

我希望这些步骤会出现在终端上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-08 17:33:11

我将if another部分替换为另一个代码:

代码语言:javascript
复制
try:
    sys.path.append("/home/gustavo/Downloads/sumo-0.32.0/tools")
    from sumolib import checkBinary
except ImportError:
    sys.exit("please declare environment variable 'SUMO_HOME' as the root directory of your sumo installation (it should contain folders 'bin', 'tools' and 'docs')")       

它解决了这个问题

票数 1
EN

Stack Overflow用户

发布于 2019-07-30 20:46:37

正确的位置可能是

代码语言:javascript
复制
export SUMO_HOME=/home/gustavo/Downloads/sumo-0.32.0

没有工具或工具后缀。它不会在python脚本中使用os.system,但是您可以直接修改os.environ。此外,您还混淆了脚本中对os.environ的调用。它应改为:

代码语言:javascript
复制
tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57262675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档