10

カーネルへのコマンドラインインターフェイスを備えた次のダイアログについて考えてみます。

$ 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サーバーがなかったため、フロントエンドを呼び出すことができなかったことです。

4

2 に答える 2

7

MathKernel からグラフィックスをエクスポートするには、フロント エンドが必要です。グラフィックスのレンダリングは、フロントエンドによって完全にカバーされます。フロント エンドがないと、エクスポートするグラフィックがありません。回避策はありません。

フロントエンドが機能している場合にできることは、次を使用することです。

UseFrontEnd[Export[filename,graphics]]

これにより、ターミナルからフロントエンドが呼び出され、グラフィックをエクスポートできるようになります。

X サーバーと Windows マネージャーがインストールされていない Linux マシンでフロント エンドを動作させるには、次のオプションがあります。

  1. 他のマシンの X ディスプレイを使用します。http://www.hungry.com/~jamie/xexport.htmlなどを参照してください。基本的には、環境変数の設定export DISPLAY=machine_address:0.0または各実行オプションの受け渡しに要約されます-display machine_address:0.0

  2. X サーバーのフレームバッファである Xvfb をローカルにインストールします。使い方はとてもシンプルで簡単です。たとえば、Xvfb のウィキペディアのエントリを参照してください。Xvfb の実行時に X ディスプレイを設定Xvfb :display_nr &し、前のオプションと同様に使用できます。

于 2009-11-09T20:01:14.930 に答える
3

グラフィックのエクスポートには、バージョン 6 のフロント エンドも必要です。同様に、フロントエンドには X が必要になる場合があります (結局のところ、2D プロットの一部でさえ 3D グラフィックス アクセラレーションが必要です ...)

Windows用のv6しかありません。そこでは、コマンド ライン セッションからグラフィックをエクスポートするときに、フロント エンドが必要に応じてバックグラウンドで自動的に起動されます。

于 2008-11-25T13:18:06.277 に答える