[英]Installing mongo-db via a python script. Subprocess calls fail
I'm trying to install mongo-db on an ubuntu machine via a python script. 我正在尝试通过python脚本在ubuntu机器上安装mongo-db。 If I were to do it manually, using the following steps found here , it works perfectly. 如果要手动执行此操作,请使用此处找到的以下步骤,它可以完美运行。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo echo 'deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse' | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.lis
sudo apt-get update
sudo apt-get install mongodb-org
I'm representing these in python via a series of subprocess calls. 我通过一系列子过程调用在python中表示这些。 What I have is as follows - 我所拥有的如下-
subprocess.call(["apt-key", "adv", "--keyserver", "hkp://keyserver.ubuntu.com:80", "--recv", "EA312927"])
subprocess.call(["echo", "deb", "http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse", "|", "tee", "/etc/apt/sources.list.d/mongodb-org-3.2.list"])
subprocess.call(["apt-get", "update"])
subprocess.call(["apt-get", "install", "mongodb-org"])
This seems to be correct based on python tutorials on the matter, and yet, the script seems to fail and mongodb is not installed. 根据有关此问题的python教程,这似乎是正确的,但是脚本似乎失败了,并且未安装mongodb。
Can anyone help me figure out whats wrong with these subprocess calls? 谁能帮我弄清楚这些子流程调用出了什么问题?
The obvious difference: sudo
and the absence of the shell that would interpret |
最明显的区别: sudo
并没有将解释外壳|
(pipe). (管)。 See How do I use subprocess.Popen to connect multiple processes by pipes? 请参阅如何使用subprocess.Popen通过管道连接多个进程?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.