草庐IT

subprocesses

全部标签

python - 在 python 中正确使用 subprocess.PIPE?

我正在尝试使用subprocess.Popen构建一个序列来获取视频文件的持续时间。我已经搜索了3天,但在网上找不到任何关于为什么这段代码不起作用的原因,但它一直给我一个空白结果:importsysimportosimportsubprocessdefmain():the_file="/Volumes/Footage/Acura/MDX/2001/CrashTest/01AcuraMDXFrontCrash.mov"ffmpeg=subprocess.Popen(['/opt/local/bin/ffmpeg','-i',the_file],stdout=subprocess.PIPE

python - 在 python 中正确使用 subprocess.PIPE?

我正在尝试使用subprocess.Popen构建一个序列来获取视频文件的持续时间。我已经搜索了3天,但在网上找不到任何关于为什么这段代码不起作用的原因,但它一直给我一个空白结果:importsysimportosimportsubprocessdefmain():the_file="/Volumes/Footage/Acura/MDX/2001/CrashTest/01AcuraMDXFrontCrash.mov"ffmpeg=subprocess.Popen(['/opt/local/bin/ffmpeg','-i',the_file],stdout=subprocess.PIPE

python - subprocess.Popen 后如何清理?

我有一个长时间运行的python脚本和一个perl工作子进程。数据通过其stdin和stdout传入和传出子proc。child必须定期重新启动。不幸的是,运行一段时间后,它用完了文件(“打开的文件太多”)。lsof显示许多剩余的开放管道。在Popen进程后清理的正确方法是什么?这是我现在正在做的事情:defstart_helper(self):#spawnperlhelpercwd=os.path.dirname(__file__)ifnotcwd:cwd='.'self.subp=subprocess.Popen(['perl','theperlthing.pl'],shell=F

python - subprocess.Popen 后如何清理?

我有一个长时间运行的python脚本和一个perl工作子进程。数据通过其stdin和stdout传入和传出子proc。child必须定期重新启动。不幸的是,运行一段时间后,它用完了文件(“打开的文件太多”)。lsof显示许多剩余的开放管道。在Popen进程后清理的正确方法是什么?这是我现在正在做的事情:defstart_helper(self):#spawnperlhelpercwd=os.path.dirname(__file__)ifnotcwd:cwd='.'self.subp=subprocess.Popen(['perl','theperlthing.pl'],shell=F

python - 为什么调用 time.sleep 或 subprocess.Popen 后 Python 操作会慢 30 倍?

考虑以下循环:foriinrange(20):ifi==10:subprocess.Popen(["echo"])#command1t_start=time.time()1+1#command2t_stop=time.time()print(t_stop-t_start)当“命令1”在它之前运行时,“命令2”命令系统地运行时间更长。下图显示了1+1的执行时间作为循环索引i的函数,平均超过100次运行。1+1的执行速度比subprocess.Popen慢30倍。它变得更奇怪了。有人可能认为只有subprocess.Popen()之后运行的第一个命令受到影响,但事实并非如此。以下循环显示当

python - 为什么调用 time.sleep 或 subprocess.Popen 后 Python 操作会慢 30 倍?

考虑以下循环:foriinrange(20):ifi==10:subprocess.Popen(["echo"])#command1t_start=time.time()1+1#command2t_stop=time.time()print(t_stop-t_start)当“命令1”在它之前运行时,“命令2”命令系统地运行时间更长。下图显示了1+1的执行时间作为循环索引i的函数,平均超过100次运行。1+1的执行速度比subprocess.Popen慢30倍。它变得更奇怪了。有人可能认为只有subprocess.Popen()之后运行的第一个命令受到影响,但事实并非如此。以下循环显示当

Python模块学习:subprocess模块详解

一.subprocess模块subprocess是Python2.4中新增的一个模块,它允许你生成新的进程,连接到它们的input/output/error管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如:os.systemos.spawn*1.subprocess模块中的常用函数函数描述subprocess.run()Python3.5中新增的函数。执行指定的命令,等待命令执行完成后返回一个包含执行结果的CompletedProcess类subprocess.call()执行指定的命令,返回命令执行状态,其功能类似于os.system(cmd)。subproce

关于subprocess.CalledProcessError: Commandxxx returned non-zero exit status 1. 的问题--pytorch分布式训练问题

1.问题描述我想跑一个模型的训练源代码时,就出现了这个问题,之前上网一顿查,发现并没有解决的办法。所说的也跟这个对不上。这个问题的本身是有关于pytorch分布使训练的问题。 实际情况如下。root@node02:~/data/zjx/others/DDPtry#python-mtorch.distributed.launch--nproc_per_node3tryDDP_1.py*****************************************SettingOMP_NUM_THREADSenvironmentvariableforeachprocesstobe1indefau

出现错误“subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1”解决方法

2023.8.1更新:各个库的版本更新可能会导致这里的方法不可用,大家如果遇到这个错误,也可以尝试安装ninja,应该也能解决这个错误的出现主要是因为pytorch版本大于1.5,可行的解决方法有两个:1.将pytorch版本降到1.5以下;2.将setup.py中的“cmdclass={'build_ext':BuildExtension}”这一行改为“cmdclass={'build_ext':BuildExtension.with_options(use_ninja=False)}”,pytorch默认使用ninjia作为backend,这里把它禁用掉就好了;网上有一些方法让将torch

Python seqeval包安装报错: error: subprocess-exited-with-error 解决方法

文章目录报错信息如下解决方法:pipinstallseqeval报错:error:subprocess-exited-with-error报错信息如下CollectingseqevalUsingcachedhttp:///pypi.tuna.tsinghua.edu.cn/simple/repository/pypi/packages/seqeval/1.2.2/seqeval-1.2.2.tar.gz(43kB)Preparingmetadata(setup.py)...errorerror:subprocess-exited-with-error×pythonsetup.pyegg_inf