前回(Python 一人勉強会 - 第2章 Pythonプログラムの実行 - We All Get Old - Naskin Diaryに引き続き「初めてのPython 第3版」の第3章 プログラムの起動方法を読み進める。
対話型インタフェース
いつも確認用のsample.{言語の拡張子}みたいなプログラムを書いてしまうから対話型プログラミング/インターフェースってほとんど使う機会なかったけど小さなコードのテスト実行として有用なのか。
IDLE
GUIツールの紹介。vi使いの俺には不要かな、、、マシン速度が遅いわけじゃないけどいまいち使う気にならない、年なのだろうか。
他のプログラムへの組み込み
C言語だとこんな感じで動かせるらしい。さっそく挑戦。
#include <Python.h> ... Py_Initialize(); PyRun_SimpleString("x = braze + sir + robin");
とりあえずいつものハローワールドで。
#include <Python.h> int main(int argc, char *argv[]) { Py_Initialize(); PyRun_SimpleString("print 'hello world'"); }
コンパイルするとヘッダファイルが見つからないといわれる><
$ gcc -c ./python_c.c ./python_c.c:1:20: error: Python.h: No such file or directory
/usr/include/python2.5 の下にあったので修正(環境:Mac OS X/Leopard)
#include <python2.5/Python.h> int main(int argc, char *argv[]) { Py_Initialize(); PyRun_SimpleString("print 'hello world'"); }
コンパイルは成功するもオブジェクトのリンクに失敗><
$ gcc -c ./python_c.c $ gcc -o ./python_c ./python_c.o Undefined symbols: "_Py_Initialize", referenced from: _main in python_c.o "_PyRun_SimpleStringFlags", referenced from: _main in python_c.o ld: symbol(s) not found collect2: ld returned 1 exit status
ここ(C言語アプリケーションに Pythonを組み込む - ふにゃるん)を参考にコンパイルコマンドを再実行。
$ gcc -o ./python_c python_c.o -L/usr/lib/python2.5 -lpython2.5 $ ./python_c hello world $
補完されました。おめでとう、おめでとう、ありがとう。
参考に下記事は2006年に書かれている。あいかわらず4年ほど周回遅れなおいら。