gpt4 book ai didi

python - 使用子进程运行单独的 python 程序

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:41 25 4
gpt4 key购买 nike

我正在尝试创建一个脚本来运行我的其他 python 程序。我是 subprocess 模块的新手,所以这让我有点困惑。

项目结构

/qe-functional
/qe
/tests
cron_functional.py
test_web_events.py
setup.sh

cron_function.py

print(os.getcwd())
# print(subprocess.check_output('ls'))
runtag = "daily_run_" + datetime.today().strftime("%m_%d_%y")
testrun = "source ../../setup.sh; ./test_web_events.py -n 10 -t prf -E ctg-businessevent -p post {}".format(runtag)
cmd = testrun.split()
print(cmd)
subprocess.check_output(cmd)

输出

$ python cron_functional.py 
/Users/bli1/Development/QE/qe-functional/qe/tests
['source', '../../setup.sh;', './test_web_events.py', '-n', '10', '-t', 'prf', '-E', 'ctg-businessevent', '-p', 'post', 'daily_run_05_26_15']
Traceback (most recent call last):
File "cron_functional.py", line 11, in <module>
subprocess.check_output(cmd)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 566, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 709, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1326, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

最佳答案

source 是内部 shell 命令,而不是可执行文件。您想要的不是运行一个带有 11 个参数的 source 命令,而是运行一个单行 shell 脚本。您需要将整个脚本作为一个字符串传递以供 shell 解释。

subprocess.check_output(testrun, shell=True)

你还没有说setup.sh是做什么的。如果要设置环境变量并更改工作目录,请考虑在 Python 中执行此操作。然后就可以运行了

subprocess.check_output(['./test_web_events.py', '-n', '10', …, '-p', 'post', runtag])

...不涉及 shell。

关于python - 使用子进程运行单独的 python 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30452850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com