gpt4 book ai didi

python - 值错误 : I/O operation on closed file with ffmpeg

转载 作者:行者123 更新时间:2023-12-04 23:25:38 24 4
gpt4 key购买 nike

我试图让这个( minimal working example )代码在我在 super 计算集群中设置的 Anaconda 上的虚拟环境中编译:

import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as manimation

FFMpegWriter = manimation.writers['ffmpeg']
metadata = dict(title='Movie Test', artist='Matplotlib',
comment='Movie support!')
writer = FFMpegWriter(fps=15, metadata=metadata)

fig = plt.figure()
l, = plt.plot([], [], 'k-o')

plt.xlim(-5, 5)
plt.ylim(-5, 5)

x0, y0 = 0, 0

with writer.saving(fig, "writer_test.mp4", 100):
for i in range(100):
x0 += 0.1 * np.random.randn()
y0 += 0.1 * np.random.randn()
l.set_data(x0, y0)
writer.grab_frame()

问题是,此代码 在我的本地机器上工作得很好 (MacOSX) - Anaconda 发行版; python 2.7;相同的 matplotlib 和 numpy 版本,我在 Anaconda 上有 ffmpeg;我在集群上也有 ffmpeg,尽管版本与 Python 上的版本不同(但在我的本地机器上没有问题)。当我在 上运行代码时集群 ,我得到:
Traceback (most recent call last):
File "movie_test.py", line 25, in <module>
writer.grab_frame()
File "~/anaconda2/envs/test_movie/lib/python2.7/contextlib.py", line 35, in __exit__
self.gen.throw(type, value, traceback)
File "~/anaconda2/envs/test_movie/lib/python2.7/site-packages/matplotlib/animation.py", line 241, in saving
self.finish()
File "~/anaconda2/envs/test_movie/lib/python2.7/site-packages/matplotlib/animation.py", line 367, in finish
self.cleanup()
File "~/anaconda2/envs/test_movie/lib/python2.7/site-packages/matplotlib/animation.py", line 405, in cleanup
out, err = self._proc.communicate()
File "~/anaconda2/envs/test_movie/lib/python2.7/site-packages/subprocess32.py", line 927, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "~/anaconda2/envs/test_movie/lib/python2.7/site-packages/subprocess32.py", line 1713, in _communicate
orig_timeout)
File "~/anaconda2/envs/test_movie/lib/python2.7/site-packages/subprocess32.py", line 1769, in _communicate_with_poll
register_and_append(self.stdout, select_POLLIN_POLLPRI)
File "~/anaconda2/envs/test_movie/lib/python2.7/site-packages/subprocess32.py", line 1748, in register_and_append
poller.register(file_obj.fileno(), eventmask)
ValueError: I/O operation on closed file

我所做的所有搜索都对应于相对简单的文本写入/输出操作,但不适用于视频。在此先感谢您的帮助!

最佳答案

事实证明这个错误非常小——我必须导入集群的 matplotlib。我不知道为什么会这样,因为 matplotlib 已经合并到 Python 包中。

关于python - 值错误 : I/O operation on closed file with ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396097/

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