我是Python的新手,正在尝试使用子进程在另一个脚本中运行一个脚本.我在网上发现了一些资源,这些资源非常接近,但不幸的是,这些资源无法帮助我正确运行代码.这是我想做的:在我的script1(主脚本)中,我正在创建fabfile...

我是Python的新手,正在尝试使用子进程在另一个脚本中运行一个脚本.我在网上发现了一些资源,这些资源非常接近,但不幸的是,这些资源无法帮助我正确运行代码.
这是我想做的:
在我的script1(主脚本)中,我正在创建fabfile.py(script2).此脚本2或fabfile.py需要从脚本1执行.经过研究,我发现execfile和os.systems并不是很好的选择,因此我决定使用子进程. (参考:How can I make one python file run another?)
这是我在做什么,但没有工作:
from os.path import expanduser
home = expanduser("~")
import os
os.getcwd()
desk = "/Desktop"
path = str(home)+str(desk)
f = open("fabfile.py","w") # Creating a fabfile.py
f.write("from fabric.api import run \ndef task1(): \n run('ls')")
import subprocess
host = raw_input("Enter the host IP with username e.g. root@10.0.0.2:")
p1 = subprocess.Popen(['fab', '-f path/fabfile.py', '-H host'],stdout=subprocess.PIPE)
output = p1.communicate()
print output
注意:在行
p1 = subprocess.Popen(['fab', '-f path/fabfile.py', '-H host'],stdout=subprocess.PIPE)
我尝试了许多不同的格式-引号和双引号位置,变量的$和%等,但似乎都没有用.知道我在做什么错吗?
我看到的示例通常很简单,没有任何变量用作参数.
解决方法:
>不要在字符串中指定python变量
>单独的标志
p1 = subprocess.Popen(['fab', '-f', path+'/fabfile.py', '-H', host],stdout=subprocess.PIPE)
>加入路径时,最好使用os.path.join()
fab_file = os.path.join(os.path.expanduser("~"), "Desktop", 'fabfile.py')
本文标题为:在python中将子进程与fab一起使用


基础教程推荐
- python-3.x-使用gunicorn nginx的服务烧瓶应用程序显示404 [ec2] 2023-11-11
- Django把SQLite数据库转换为Mysql数据库的过程 2023-08-04
- 如何修复AttributeError:在Google Cloud Interactive Shell中运行python时,“模块”对象没有属性“客户端” 2023-11-11
- 【转】新装的CentOS 7安装python3 2023-09-03
- Python Sklearn的全方位用法介绍 2023-10-08
- 详解pandas df.iloc[]的典型用法 2022-08-30
- Python并行编程(十一):基于进程的并行 2023-09-03
- selenium鼠标操作实战案例详解 2023-08-04
- 从python编译cpp失败但不在shell中 2023-11-11
- 使用 OpenCV-Python 识别答题卡判卷功能 2023-08-08