Рассмотрим следующий диалог с интерфейсом командной строки для ядра:
$ math
Mathematica 6.0 for Linux x86 (32-bit)
In[1]:= p = Plot[x^2, {x,-1,1}]
Out[1]= -Graphics-
In[2]:= Export["foo.png", p]
Out[2]= foo.png
Это прекрасно работает на машине с $Version = 6.0 for Linux x86 (32-bit) (June 2, 2008)
, но не работает на машине с $Version = 7.0 for Linux x86 (64-bit) (November 11, 2008)
со следующей ошибкой:
Export::nofe: A front end is not available; export of PNG
requires a front end.
С подобными ошибками для любого другого формата изображения, который я могу придумать.
Итак, вопрос в том, как мне заставить ядро Mathematica без интерфейса экспортировать изображения? Почему это работает без проблем в Mathematica 6.0? Если приведенный выше пример работает для вас в версии 7, пожалуйста, дайте мне знать!
PS: в версии 7 была введена функция UsingFrontEnd
, но она не работает с
Developer`UseFrontEnd::nofestart:
Unable to launch a front end. Proceeding without a front end.
предположительно, потому что X11 не установлен на машине.
Добавление
Оказывается, что нет разницы между версией 6 и версией 7 в этом отношении. Скорее, на машине с версией 6 передний конец вызывался тихо. Проблема с другим компьютером, как ясно показывают ответы на этот вопрос, заключается в том, что X-сервера не было, и поэтому внешний интерфейс не может быть вызван.