- ベストアンサー
Pythonで数値計算した結果をgnuplotで出力したい
- 質問者はPythonで数値計算した結果をgnuplotで出力したいが、gnuplotをimportしてもグラフを表示できないという問題がある。
- 質問者はMac OS X 10.5を使用しており、numerical pythonとgnuplot.pyをダウンロードしてインストールしたが、gnuplotの表示でエラーが発生する。
- エラーメッセージにはIOErrorやImportErrorなどが含まれており、質問者は原因を特定できずに困っている。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず。 このようなモジュールは、setup.pyを実行したPythonのバージョン専用にインストールされます。 .../site-packages_py2.7/Gnuplot というインストール先からわかります。 python2.5.5から使うには、Python2.5.5でsetup.py installを実行する必要があります。 os.environ['PATH']の結果からして、IDLEを直接実行したときには、gnuplotのある/opt/local/binにパスが通っていないのがわかります。 ・IDLEを実行するときはターミナルから open -a IDLE.app で実行する ・IDLEで os.environ['PATH']='/opt/local/bin:' + os.environ['PATH'] などとして、PATHに/opt/local/bin を追加する ・gp_macosx.py の gnuplot_command = 'gnuplot' を gnuplot_command = '/opt/local/bin/gnuplot'と変える といったように、gnuplotへアクセスできるようにすれば動くと思います。
その他の回答 (3)
- kmee
- ベストアンサー率55% (1857/3366)
> gnuplot -version >>> os.system("gnuplot -version") ハイフンは2つです。 とは言え、後の表示を見ると、一応gnuplotを呼び出せているようです。 > .../site-packages_py2.7/Gnuplot$ sudo ./test.py # 単に ./test としたら permission denied だったので 失礼しました。 tar.gzに入っている方には実行属性がついていたので、site-packageの方にも付いているものと思い確認していませんでした。 ./test.py → python test.py ./demo.py → python demo.py に置き換えて実行してみてください。 これで(ところどころでエラーになりつつも)動くようなら、IDLEでのPATHの設定がbashと異なっている可能性が考えられます。 import os print os.environ['PATH'] とでもして、IDLEと、ターミナルから起動したPythonとで比べてみてください。 これでもBronken pipeだと、ちょっと私にはわかりかねます。
お礼
Aquaemacs で gnuplot の表示ができたのでもう大丈夫です。お世話になりました。
補足
$ gnuplot --version gnuplot 4.4 patchlevel 0 python2.5 で同じことをやりなおしてみたらできました。グラフの表示まで。 ただし terminal でだけ。 IDLE の python2.5 shell では、import Gnuplot もできませんでした。 python2.7 は今回の新しくダウンロードしただけだからなのかな? なら紛らわしいから捨ててしまおう、と思って Finder でpython2.7 関連のものをゴミ箱に捨てました。 そうしてまた python2.5で import Gnuplot してみたら ImportError: No module named Gnuplot となってしまいました。 がんばって復元してみます。やり直した方が早いかもしれません。 いずれにせよ terminal では問題ないということでしょう。 terminalでは >>> import os >>> print os.environ['PATH'] /Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/Current/bin :/opt/local/bin:/opt/local/sbin:/Users/****/bin:/Developer/Tools:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin :/usr/texbin:/usr/X11/bin IDLE では >>> import os >>> print os.environ['PATH'] /usr/bin:/bin:/usr/sbin:/sbin どう直せばいいのでしょうか? ともあれ、今日はありがとうございました。
- kmee
- ベストアンサー率55% (1857/3366)
はて? 手許のMac(OS10.6.5, pyhton2.6.6, gnuplot4.4.2)で実験したところ、 gnuplotがインストールされた状態 → 一応動作(詳細は 後述) gnuplotをアンインストールした状態 → ほぼ同じエラーメッセージ となるので、gnuplotにアクセスできていない、ということになると思うのですが。 ・ターミナルから which gnuplot でgnuplotのパスは表示されるか? ・ターミナルから gnuplot --version としてgnuplotのバージョンが表示されるか? ・Python Shellから import os os.system("gnuplot --version") でバージョンが表示されるか?戻り値が0になっているか? ・ターミナルから、demo.py, test.pyのあるディレクリに移動して ./test.py ./demo.py とするとどうなるか? というあたりを確認してみてください。 なお、前述「一応動作」とあるのは、Gnuplot.py自体が古いため、gnuplot 4.4ではエラーになるコマンドを出力するためです。 demo.pyで使われたコマンド set data style linespoints gnuplot4.4での書式 set style data linespoints
補足
$ which gnuplot /opt/local/bin/gnuplot $ gnuplot -version Cannot open load file '-version' line 0: util.c: No such file or directory python shell >>> import os >>> os.system("gnuplot -version") Cannot open load file '-version' line 0: util.c: No such file or directory 256 .../site-packages_py2.7/Gnuplotshimuraakihiko$ sudo ./test.py # 単に ./test としたら permission denied だったので Password: sudo: ./test.py: command not found .../site-packages_py2.7/Gnuplotshimuraakihiko$ sudo ./demo.py sudo: ./demo.py: command not found という結果です。
- Tacosan
- ベストアンサー率23% (3656/15482)
念のため確認ですが, gnuplot は入ってますよね?
補足
はい、gnuplot-4.4.0 が入っています。
お礼
ありがとうございます!無事 IDLE でも出ました. なるほど PATH が通ってなかったんですね. gnuplot_command = '/opt/local/bin/gnuplot' で成功しました.