FileNotFoundError: [WinError 2] 系统找不到指定的文件 - 保存 mp4 图、WinPython、Anaconda 时

Iul*_*can 8 python matplotlib file-not-found

我有下面的代码,当我运行它时,出现下一个错误“ FileNotFoundError:[WinError 2]系统找不到指定的文件”。

我已经添加了日志文件片段。奇怪的是,这段代码昨天在 Anaconda 上运行得非常完美。但是,当尝试在另一台计算机(例如使用 WinPython 的计算机)上运行它时,会弹出错误。(当然,我已经为新机器相应调整了路径)。最糟糕的是,现在它甚至在“原始”机器上也无法工作,而代码是在“原始”机器上开发的并且运行得很好(无需更改任何内容,只需重新启动 PC)。

也许有人遇到同样的问题并找到解决方案。感谢帮助!!

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from scipy import array
from matplotlib import animation
import os



jet = plt.get_cmap('jet')
fig = plt.figure()
ax = fig.gca(projection='3d')

X = np.linspace(70,40,4)
Y = np.linspace(5,2,4)
X,Y=  np.meshgrid(X, Y)

Z = array ([
    [1223.539555, 1428.075086,1714.479425, 2144.053223],
    [1567.26647,1829.056119,2990.416079,2745.320067],
    [2135.163957,2491.534201, 2990.416079,3738.761638],
    [3257.280827, 3800.655101, 4561.372117, 5702.458776],
    ])

surf = ax.plot_surface(X, Y, Z, rstride = 1, cstride = 1, cmap =jet,linewidth = 0,alpha= 1)
ax.set_zlim3d(0, Z.max())

fig.colorbar(surf, shrink=0.8, aspect=5)
ax.set_xlabel('Axial Length [mm]')
ax.set_ylabel('nbTurns')
ax.set_zlabel('RPM')

def rotate(angle):
    ax.view_init(azim=angle)

fig.set_size_inches(20, 20)
dpi = 150#asta
rot_animation = animation.FuncAnimation(fig, rotate, frames=np.arange(0,362,2),interval=100)
mywriter= animation.FFMpegWriter(fps=80)

folder = 'D:/IuliaVascan/Grafice/'
file = 'unt1.mp4'

path = os.path.join(folder, file)
rot_animation.save(path, writer=mywriter,dpi=dpi)

plt.show()
Run Code Online (Sandbox Code Playgroud)

完整的回溯是:

Traceback (most recent call last):

  File "<ipython-input-13-dfe90b3fa52e>", line 1, in <module>
    runfile('C:/Users/username/untitled6.py', wdir='C:/Users/username')

  File "C:\Users\username\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)

  File "C:\Users\username\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/username/untitled6.py", line 60, in <module>
    rot_animation.save(path, writer=mywriter,dpi=dpi)#asta

  File "C:\Users\username\Anaconda3\lib\site-packages\matplotlib\animation.py", line 829, in save
    with writer.saving(self._fig, filename, dpi):

  File "C:\Users\username\Anaconda3\lib\contextlib.py", line 59, in __enter__
    return next(self.gen)

  File "C:\Users\username\Anaconda3\lib\site-packages\matplotlib\animation.py", line 200, in saving
    self.setup(*args)

  File "C:\Users\username\Anaconda3\lib\site-packages\matplotlib\animation.py", line 190, in setup
    self._run()

  File "C:\Users\username\Anaconda3\lib\site-packages\matplotlib\animation.py", line 218, in _run
    creationflags=subprocess_creation_flags)

  File "C:\Users\username\Anaconda3\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)

  File "C:\Users\username\Anaconda3\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)

FileNotFoundError: [WinError 2] The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

小智 6

如果有人遇到同样的错误,我通过在我的环境中安装 ffmpeg 来修复它。我不知道安装 matplotlib 时这不会自动安装为依赖项,但是哦,好吧。希望这可以帮助。

  • 我从“from matplotlib importanimation”中得到了同样的错误。安装 ffmpeg (在我的例子中使用 conda install ffmpeg )解决了这个问题。 (2认同)