操作系统()因故返回False

2024-09-26 22:52:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个相当大的程序(内存方面),它是一个带有张量流的神经网络。我在处理体积数据。我的最终目标是使用ffmpeg通过卷创建一个视频,其中每个帧是一个z切片。在使用ospython库之前,我已经成功地做到了这一点。代码如下所示:

videoFile = self.slicesPath + "/0.mp4"
sliceFiles = self.slicesPath + "/%04d.jpg"
os.system("ffmpeg -y -framerate 10 -start_number 0 -i " + sliceFiles + " -vcodec mpeg4 " + videoFile)

当我用pdb单步执行这个命令并尝试执行os.system()命令时,我得到了-1,好像有什么错误。你知道吗

(Pdb) os.system("ffmpeg -y -framerate 10 -start_number 0 -i " + sliceFiles + " -vcodec mpeg4 " + videoFile)
-1

然后我打印了两个变量。。。你知道吗

(Pdb) sliceFiles
'/home/volcart/UnsupervisedResults/HercFragment/VAE/0/1/%04d.jpg'
(Pdb) videoFile
'/home/volcart/UnsupervisedResults/HercFragment/VAE/0/1/0.mp4'

在新的终端选项卡中打开python控制台,复制并粘贴完全相同的代码行(使用上面的字符串而不是变量名),然后BAM!它神奇地工作。你知道吗

为什么会这样?它在单独的python控制台中工作,在bash中工作,但在我的程序中不工作(当它是完全相同的东西时)。我唯一的猜测是与记忆有关,但我肯定我没有失去记忆。。。我的机器有64GB,python没有限制。你知道吗

编辑

我只是尝试了一个subprocess而得到了这个:

(Pdb) subprocess.call("ffmpeg -y -framerate 10 -start_number 0 -i " + sliceFiles + " -vcodec mpeg4 " + videoFile, shell=True)
*** OSError: [Errno 12] Cannot allocate memory

但是它怎么不能分配内存呢?Python没有内存限制,对吧?我有64GB的内存,我可以在程序外执行ffmpeg命令,所以我的程序受到了一些限制。你知道吗


Tags: 内存代码命令程序numberossystemstart

热门问题