在Windows 10/Pycharm中使用Vagrant从Python调用FastDowndown planner
我试图使用python脚本中的Vagrant调用FastDowndown planner 我尝试了os库,但失败了 然后我在子流程中尝试了不同的方法:在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) 它输出:
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的在线示例也不多