在流浪汉上运行python脚本

时间:2016-08-01 08:35:31

标签: python vagrant vagrantfile

我正在尝试运行一个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机器上运行脚本?

2 个答案:

答案 0 :(得分:5)

您有两个选项可以使用vagrant shell provisioner运行脚本,您必须传递inlinepath参数:

  

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)

如果您想在机器启动时启动应用程序,您可以这样做:

  1. 将您的python app code directory移至Vagrantfile的目录

  2. 像这样配置Vagrantfile:

    config.vm.provision "shell", inline: <<-SHELL
      python /vagrant/<your python app code directory>/app.py
    SHELL