Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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
在vagrant up上运行python脚本_Python_Vagrant_Vagrantfile - Fatal编程技术网

在vagrant up上运行python脚本

在vagrant up上运行python脚本,python,vagrant,vagrantfile,Python,Vagrant,Vagrantfile,我正在尝试运行一个vagranfile,它将生成一个正在运行的python flask应用程序。我试着用这个作为最后一个命令来实现这个- config.vm.provision:shell,:path=>“python app.py” 但它导致了以下错误- 主机系统上不存在shell provisioner的路径:/Users/*****/code/app vagrant/python app.py 我知道脚本正试图从主机运行此命令,如何使Vagrant在启动的Vagrant计算机上运行脚本?您

我正在尝试运行一个vagranfile,它将生成一个正在运行的python flask应用程序。我试着用这个作为最后一个命令来实现这个-
config.vm.provision:shell,:path=>“python app.py”
但它导致了以下错误-

主机系统上不存在shell provisioner的路径:/Users/*****/code/app vagrant/python app.py


我知道脚本正试图从主机运行此命令,如何使Vagrant在启动的Vagrant计算机上运行脚本?

您有两个选项可以使用运行脚本,您必须传递
内联
路径
参数:

内联(字符串)-指定要在远程计算机上内联执行的shell命令

path(string)-要上载和执行的shell脚本的路径。它可以是相对于项目文件的脚本,也可以是远程脚本(如gist)

因此,当您传递
:path=>“python app.py”
时,系统会尝试在主机上查找名为
python app.py
的脚本

使用
inline
参数替换,它将实现您想要的功能

config.vm.provision :shell, :inline => "python app.py"
注意:默认情况下,provisioner以
root
用户的身份运行,如果要更改并以
vagrant
用户的身份运行:

config.vm.provision :shell, :inline => "python app.py", :privileged => false

如果要在机器启动时启动应用程序,可以执行以下操作:

  • 将您的
    python应用程序代码目录
    移动到文件的目录

  • 按如下方式配置Vagrant文件:

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