我正在尝试运行一个vagranfile,它将导致运行python flask应用程序。我已经尝试使用它作为实现此目的的最后一个命令 -
Option Explicit
Sub RemovePivotFromRange(rngTarget As Range)
Dim pvt As PivotTable
Dim rngPivot As Range
Set pvt = rngTarget.PivotTable
Set rngPivot = pvt.TableRange2
rngPivot.Delete Shift:=xlUp
End Sub
但它导致以下错误 -
config.vm.provision :shell, :path => "python app.py"
{路径{1}}
我知道脚本试图从主机运行此命令,如何让Vagrant在启动的vagrant机器上运行脚本?
答案 0 :(得分:5)
您有两个选项可以使用vagrant shell provisioner运行脚本,您必须传递inline
或path
参数:
inline (string) - 指定要在远程计算机上执行的内联shell命令。
path (字符串) - 要上载和执行的shell脚本的路径。它可以是相对于项目Vagrantfile的脚本,也可以是远程脚本(如gist)。
所以当你通过:path => "python app.py"
时,系统会尝试在你的主机上找到一个名为python app.py
的脚本。
替换使用inline
参数,它将达到您想要的效果
config.vm.provision :shell, :inline => "python app.py"
注意:默认情况下,如果您要更改并以root
用户身份运行它,则配置程序将以vagrant
用户身份运行:
config.vm.provision :shell, :inline => "python app.py", :privileged => false
答案 1 :(得分:1)
如果您想在机器启动时启动应用程序,您可以这样做:
将您的python app code directory
移至Vagrantfile的目录
像这样配置Vagrantfile:
config.vm.provision "shell", inline: <<-SHELL
python /vagrant/<your python app code directory>/app.py
SHELL