Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows 10/Pycharm中使用Vagrant从Python调用FastDowndown planner_Python_Pycharm_Subprocess_Vagrant - Fatal编程技术网

在Windows 10/Pycharm中使用Vagrant从Python调用FastDowndown planner

在Windows 10/Pycharm中使用Vagrant从Python调用FastDowndown planner,python,pycharm,subprocess,vagrant,Python,Pycharm,Subprocess,Vagrant,我试图使用python脚本中的Vagrant调用FastDowndown planner 我尝试了os库,但失败了 然后我在子流程中尝试了不同的方法: cmd = ['downward/fast-downward.py', "--alias", "lama-first", "/vagrant/domain.pddl", "/vagrant/problem.pddl"] retcode = subprocess.call(cmd) print(retcode) 它输出:

我试图使用python脚本中的Vagrant调用FastDowndown planner

我尝试了os库,但失败了

然后我在子流程中尝试了不同的方法:

    cmd = ['downward/fast-downward.py', "--alias", "lama-first", "/vagrant/domain.pddl", "/vagrant/problem.pddl"]
    retcode = subprocess.call(cmd)

    print(retcode)
它输出:

回溯(最近一次呼叫最后一次):

文件“C:/…py”,第124行,在

main(sys.argv[1:]) 文件“C:/…py”,第111行,主

retcode=subprocess.call(cmd)

调用中第323行的文件“C:\..\Anaconda3\lib\subprocess.py”

将Popen(*popenargs,**kwargs)作为p:

文件“C:\..\Anaconda3\lib\subprocess.py”,第775行,在init 恢复信号,启动新会话)

文件“C:\…\Anaconda3\lib\subprocess.py”,第1178行,在执行子进程中 startupinfo)

FileNotFoundError:[WinError 2]无法从系统中找到指定的文件

我也尝试过:

    retcode = subprocess.call("vagrant up")
    retcode = subprocess.call("vagrant ssh")
    cmd = ['downward/fast-downward.py', "--alias", "lama-first", "/vagrant/domain.pddl", "/vagrant/problem.pddl"]
    retcode = subprocess.call(cmd)

    print(retcode)
但是这些都被ssh卡住了,这是不正确的,启动一个流浪环境需要很多时间

这是我的工作环境:

多谢各位

编辑:

我已经尝试了这些链接,但我无法让Vagrant选项出现在pycharm中:


经过大量研究,我成功地从python脚本中直接运行ssh命令到vagrant。在这种情况下,我运行快速向下规划器:

output=os.popen("vagrant ssh default -- -t 'downward/fast-downward.py --alias lama-first /vagrant/domain.pddl /vagrant/problem.pddl'").read()
上述解决方案将输出字符串保存在变量
output
中。您可以使用此选项将输出打印到终端:

os.system("vagrant ssh default -- -t 'downward/fast-downward.py --alias lama-first /vagrant/domain.pddl /vagrant/problem.pddl'")
您可以在
-t
之后运行多个命令,并用分号
'command1分隔它们;命令2;…'判断(我还没试过)

您可以使用子流程库而不是操作系统,并且可以将
output
string变量拆分为
output=output.split()


我希望我能提供帮助,因为vagrant文档还不完整,而且Windows的联机示例也不多

经过大量研究,我成功地从python脚本中直接向vagrant运行了一个ssh命令。在这种情况下,我运行快速向下规划器:

output=os.popen("vagrant ssh default -- -t 'downward/fast-downward.py --alias lama-first /vagrant/domain.pddl /vagrant/problem.pddl'").read()
上述解决方案将输出字符串保存在变量
output
中。您可以使用此选项将输出打印到终端:

os.system("vagrant ssh default -- -t 'downward/fast-downward.py --alias lama-first /vagrant/domain.pddl /vagrant/problem.pddl'")
您可以在
-t
之后运行多个命令,并用分号
'command1分隔它们;命令2;…'判断(我还没试过)

您可以使用子流程库而不是操作系统,并且可以将
output
string变量拆分为
output=output.split()

我希望我能提供帮助,因为vagrant文档并不完整,而且Windows的在线示例也不多