0

我正在学习如何使用 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

谁能告诉我发生了什么事?我没有更改代码,我确定它是正确的,但我无法按我应该的方式保存电影!

4

1 回答 1

0

我遇到了同样的麻烦(也从同一本书中学习)。
对我来说,它发生在我运行bisection_movie.py文件时。

就我而言,我解决它的方式如下:

  1. 在下面的网站中,他们提到我需要安装 ImageMagick 软件,所以我按照此处列出的说明安装了它。

  2. 然后,我用 ImageMagick 安装了名为 Python Magick 的 python 接口(不知道是否需要,但我仍然需要)。

  3. 在这一切之后,我仍然遇到了麻烦,我决定按照错误消息的建议来检查命令窗口是否有来自编码器的错误消息。它很长,但其中一件说

    No such file or directory @ error/ps.c/ReadPSImage/837

  4. 在网上查看了这个错误后,我发现我仍然缺少的是“ Ghostscript 委托库”(不要问我它是什么,我不太清楚)。在为 Windows 安装 Ghostscript 委托库之后(32 位,因为那是我的 python 版本)。它得到了解决,它能够制作电影。

我建议先安装 ghostscript 委托库并检查是否足够。如果是,发回它的工作,所以我知道我所做的所有该死的事情,是什么使代码工作。

于 2013-10-15T01:20:52.767 回答