我正在学习如何使用 Python 编程,并且一直在阅读 Langtangen 的A Primer on Scientific Programming with Python。这本书是指一个网站,其中发布了书籍示例或工作代码示例/程序(http://hplgit.github.io/scipro-primer/),其中还有一对使用 SciTools(EasyViz),生成几个情节,然后尝试将它们保存在 .gif 文件中(我猜这是电影的默认输出格式)。
问题是我在运行程序时遇到错误。我通过更改数字看到了演变,但最后当程序应该将这些 .png 文件保存到电影中时,我收到以下错误消息:
Found 73 files of the format tmp_*.png.
scitools.easyviz.movie function runs the command:
convert -delay 50 tmp_*.png tmp_heatwave.gif
Invalid Parameter - 50
scitools.easyviz.movie could not make movie
Traceback (most recent call last):
File "D:\Workspaces\Eclipse Python Workspace\Book Examples\src\plot\heatwave.py", line 41, in <module>
output_file='tmp_heatwave.gif')
File "C:\Python27\lib\site-packages\scitools\easyviz\movie.py", line 1151, in movie
me.encode()
File "C:\Python27\lib\site-packages\scitools\easyviz\movie.py", line 153, in encode
raise SystemError('Check error messages from the encoder in the terminal window')
SystemError: Check error messages from the encoder in the terminal window
我查看了电影模块中的代码,参数 50 似乎是指以 fps 为单位的延迟。例如,在另一个示例程序中,它设置为 4,您也会得到相同的返回消息。如果我在 SciTools 包本身实现的模块中删除该延迟线,错误将显示为:
Invalid Parameter - tmp_heatwave.gif
谁能告诉我发生了什么事?我没有更改代码,我确定它是正确的,但我无法按我应该的方式保存电影!