[[ノート>ノート/ノート]]~
訪問者数 &counter();      最終更新 &lastmod();

**目次 [#o465b310]
#contents

**09/12/17 nltk内からコンパイル済みのJava(要するにStanford Parser) を呼出す。但し構造の中身を自由に取り出せない。 [#y3709ec9]

-NLTKの中に、PythonからJavaへのラッパーが含まれているらしい。使い方はNLTKの"internal"モジュールのマニュアル[[Package nltk :: Module internals :http://nltk.googlecode.com/svn/trunk/doc/api/index.html]]のjavaとconfig_javaを参照。
-NLTKは、Jythonからは使えない。理由はいろいろあるようだが、基本はNLTKが仮定するnumpyモジュールがPythonのC実装(CPython)に依存しているため。したがって、そのままではNLTKとStanford Parserは共存できない。解決策として、NLTKの中にあるパーザーを利用する、▲薀奪僉爾里茲Δ癖法でPythonからJavaのプログラムを呼び出して実行させる。

-NLTKの中に、PythonからJavaへのラッパーが含まれているらしい。使い方はNLTKの"internals"モジュールのマニュアル[[Package nltk :: Module internals :http://nltk.googlecode.com/svn/trunk/doc/api/index.html]]のjavaとconfig_javaを参照。

実際にStanford Parserを呼び出してみる。~
まず、JavaのコードのファイルParserDemo.javaを作る。
 import java.util.*;
 import edu.stanford.nlp.trees.*;
 import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
 class ParserDemo {
   public static void main(String[] args) {
    LexicalizedParser lp = new LexicalizedParser("/usr/local/stanford-parser-2008-10-26/englishPCFG.ser.gz");
     lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});
     String[] sent = { "This", "is", "an", "easy", "sentence", "." };
     Tree parse = (Tree) lp.apply(Arrays.asList(sent));
     parse.pennPrint();
     System.out.println();
 
     TreebankLanguagePack tlp = new PennTreebankLanguagePack();
     GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
     GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
     Collection tdl = gs.typedDependenciesCollapsed();
     System.out.println(tdl);
     System.out.println();
 
     TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
     tp.printTree(parse);
   }
 }
これを、あらかじめjavacでコンパイルしておく。ParserDemo.classが生成される。

このバイトコードファイルを、Python/NLTKから呼び出すことができる。
 python
 >>> import nltk
 >>> nltk.internal.java(['ParserDemo'],'/home/yamanouc/src/stanford:/usr/local/stanford-parser/stanford-parser.jar')
 >>> nltk.internals.java(['ParserDemo'],'/home/yamanouc/src/stanford:/usr/local/stanford-parser/stanford-parser.jar')
 Loading parser from serialized file /usr/local/stanford-parser-2008-10-26/englishPCFG.ser.gz ... done [3.0 sec].
 (ROOT [35.686]
   (S [35.580]
     (NP [6.140] (DT [2.301] This))
     (VP [28.298] (VBZ [0.144] is)
       (NP [22.961] (DT [3.221] an) (JJ [8.072] easy) (NN [8.897] sentence)))
     (. [0.002] .)))
 
 [nsubj(sentence-5, This-1), cop(sentence-5, is-2), det(sentence-5, an-3), amod(sentence-5, easy-4)]
 
 (ROOT
   (S
     (NP (DT This))
     (VP (VBZ is)
       (NP (DT an) (JJ easy) (NN sentence)))
     (. .)))
 
 nsubj(sentence-5, This-1)
 cop(sentence-5, is-2)
 det(sentence-5, an-3)
 amod(sentence-5, easy-4) 
 
 (None, None)
 >>>
但し、この使い方は、Javaのプログラムをバッチ的に使うだけしかできず、StdinとStdoutでデータの受け渡しをすることができるだけである。だから、できたトリーは、文字列形式で出力すると、それをもう一度Python内でトリー構造に作り直す方が使い易くなるだろう。(この部分はこれから検討)


**09/03/06 JythonからJava (要するにStanford Parser) を使う。但しJythonはNLTKと共存できない [#z2534183]

-PythonからJavaのプログラムにアクセスする「標準的な」方法は、Jythonを使うことらしい。ラッパーも無いことはなさそうだが、圧倒的にJythonを使え、と書いてある。
-Jythonは、Pythonの実装のひとつで、普通のPythonはC言語系で実装されているのに対し、JythonはJava (とJava VM?) で実装されている。

では、Jython(http://www.jython.org)をインストールする。OreganoではFecore Coreなのでyumでインストールできる。~
Jythonをインストールするためには、Javaが必要。JavaはJavaのサイトから最新のもの(1.6.0_12)をインストール。

JythonでPythonからJavaプログラムを呼び出す手順は([[Jython User Guide:http://www.jython.org/Project/userguide.html]]の[[Accessing Java from Jython:http://www.jython.org/Project/userguide.html#accessing-java-from-jython]]による)
 C:\jython>jython
 Jython 2.0 on java1.2.1
 Type "copyright", "credits" or "license" for more information.
 >>> from java.util import Random
 >>> r = Random()
 >>> r.nextInt()
 -790940041
 >>> for i in range(5):
 ...     print r.nextDouble()
 ...
 0.23347681506123852
 0.8526595592189546
 0.3647833839988137
 0.3384865260567278
 0.5514469740469587
や
 Jython 2.0 on java1.2.1
 Type "copyright", "credits" or "license" for more information.
 >>> from java.util import *
 >>> Random
 <jclass java.util.Random at 31702169>
 >>> Hashtable
 <jclass java.util.Hashtable at 7538094>
など。

では、Stanford Parser (/usr/local/stanford-parser/*) を呼び出すことを考える。~
まずベースとしてJava版のアクセスプログラム(パッケージ中/ParserDemo.java)を見てみよう。
 import java.util.*;
 import edu.stanford.nlp.trees.*;
 import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
 
 class ParserDemo {
   public static void main(String[] args) {
     LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser.gz");
     lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});
 
     String[] sent = { "This", "is", "an", "easy", "sentence", "." };
     Tree parse = (Tree) lp.apply(Arrays.asList(sent));
     parse.pennPrint();
     System.out.println();
 
     TreebankLanguagePack tlp = new PennTreebankLanguagePack();
     GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
     GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
     Collection tdl = gs.typedDependenciesCollapsed();
     System.out.println(tdl);
     System.out.println();
 
     TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
     tp.printTree(parse);
   }
 }
これは、Javaとしてコンパイル(javac ParserDemo.java)⇒実行(java ParserDemo)できることを確認する。
 $ java ParserDemo
 Loading parser from serialized file englishPCFG.ser.gz ... done [3.1 sec].
 (ROOT [35.686]
   (S [35.580]
     (NP [6.140] (DT [2.301] This))
     (VP [28.298] (VBZ [0.144] is)
       (NP [22.961] (DT [3.221] an) (JJ [8.072] easy) (NN [8.897] sentence)))
     (. [0.002] .)))
 
 [nsubj(sentence-5, This-1), cop(sentence-5, is-2), det(sentence-5, an-3), amod(sentence-5, easy-4)]
 
 (ROOT
   (S
     (NP (DT This))
     (VP (VBZ is)
       (NP (DT an) (JJ easy) (NN sentence)))
     (. .)))
 
 nsubj(sentence-5, This-1)
 cop(sentence-5, is-2)
 det(sentence-5, an-3)
 amod(sentence-5, easy-4)
では、これをPythonから呼び出すように書き換える(ParserDemo.py)。
 #!/usr/bin/env python
 # encoding: utf-8
 # -*- coding: utf-8 -*-
 # coding: utf-8
 ##
 
 import sys
 import codecs
 import os
 sys.path.append('/usr/local/stanford-parser/stanford-parser.jar')
 #import java.util.*
 from java.util import *
 #import edu.stanford.nlp.trees.*
 from edu.stanford.nlp.trees import *
 #import edu.stanford.nlp.parser.lexparser.LexicalizedParser
 from edu.stanford.nlp.parser.lexparser import LexicalizedParser
 
 ### A magic for printing UTF-8 characters
 sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
 
 #LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser.gz")
 lp = LexicalizedParser("/usr/local/stanford-parser/englishPCFG.ser.gz")
 #optionstring = {"-maxLength ",  "80", "-retainTmpSubcategories"}
 optionstring = ["-maxLength",  "80", "-retainTmpSubcategories"]
 
 lp.setOptionFlags(optionstring)
 
 ##sent = [ "This", "is", "an", "easy", "sentence", "." ]  #<< This works(1).
 #sent = ( "This", "is", "an", "easy", "sentence", "." )   #This is also acceptable
 #send_newversion = "This is an easy sentence."
 #Tree parse = (Tree) lp.apply(Arrays.asList(sent))
 #parse = lp.apply(Arrays.asList(sent))  #<< This works(1)
 parse = lp.apply(sent) 
 parse.pennPrint()
 print "-" * 80
 #TreebankLanguagePack tlp = new PennTreebankLanguagePack();
 tlp = PennTreebankLanguagePack();
 #GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
 gsf = tlp.grammaticalStructureFactory();
 #GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
 gs = gsf.newGrammaticalStructure(parse);
 #Collection tdl = gs.typedDependenciesCollapsed();
 tdl = gs.typedDependenciesCollapsed();
 print(tdl);
 print "-" * 80
 
 #TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
 tp = TreePrint("penn,typedDependenciesCollapsed");
 tp.printTree(parse);
主な点は、
-PYTHONPATHを設定してstanford parserのjarパッケージを検出できるようにするために、sys.path.appendでstanford-parser.jarのありかを通知する。
-Javaではimport java.util.*としていたものを、from java.util import *にする。Pythonでは多少書き方が違うようだ。
-当然、edu.stanford.nlp.parser.lexparserなどをimportする
-Javaではnewを使ってインスタンスを作っているが、Pythonでは単に変数に代入するだけでいいらしい。たとえばlp = LexicalizedParser(...)。
-lexicalized parserの起動パラメタ(引数)を与えるとき、Javaでは{"abc", "def", "ghi"}のように(文字列の配列として?)与えているが、Pythonでは["abc", "def", "ghi"]のようにしなければならない。具体的にはoptionstring = ["-maxLength",  "80", "-retainTmpSubcategories"]とした。
-JavaのSystem.out.printlnは、Pythonではprint。
-あとはJavaと殆ど同じ。

このプログラムをjythonで起動実行する。
 $jython ParserDemo.py
 Loading parser from serialized file /usr/local/stanford-parser/englishPCFG.ser.gz ... done [2.9 sec].
 (ROOT [35.686]
   (S [35.580]
     (NP [6.140] (DT [2.301] This))
     (VP [28.298] (VBZ [0.144] is)
       (NP [22.961] (DT [3.221] an) (JJ [8.072] easy) (NN [8.897] sentence)))
     (. [0.002] .)))
 --------------------------------------------------------------------------------
 [nsubj(sentence-5, This-1), cop(sentence-5, is-2), det(sentence-5, an-3), amod(sentence-5, easy-4)]
 --------------------------------------------------------------------------------
 (ROOT
   (S
     (NP (DT This))
     (VP (VBZ is)
       (NP (DT an) (JJ easy) (NN sentence)))
     (. .)))
 
 nsubj(sentence-5, This-1)
 cop(sentence-5, is-2)
 det(sentence-5, an-3)
 amod(sentence-5, easy-4)
となった。
[[ノート>ノート/ノート]]~
訪問者数 &counter();      最終更新 &lastmod();

**目次 [#o465b310]
#contents

**09/12/17 nltk内からコンパイル済みのJava(要するにStanford Parser) を呼出す。但し構造の中身を自由に取り出せない。 [#y3709ec9]

-NLTKは、Jythonからは使えない。理由はいろいろあるようだが、基本はNLTKが仮定するnumpyモジュールがPythonのC実装(CPython)に依存しているため。したがって、そのままではNLTKとStanford Parserは共存できない。解決策として、NLTKの中にあるパーザーを利用する、▲薀奪僉爾里茲Δ癖法でPythonからJavaのプログラムを呼び出して実行させる。

-NLTKの中に、PythonからJavaへのラッパーが含まれているらしい。使い方はNLTKの"internals"モジュールのマニュアル[[Package nltk :: Module internals :http://nltk.googlecode.com/svn/trunk/doc/api/index.html]]のjavaとconfig_javaを参照。

実際にStanford Parserを呼び出してみる。~
まず、JavaのコードのファイルParserDemo.javaを作る。
 import java.util.*;
 import edu.stanford.nlp.trees.*;
 import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
 class ParserDemo {
   public static void main(String[] args) {
    LexicalizedParser lp = new LexicalizedParser("/usr/local/stanford-parser-2008-10-26/englishPCFG.ser.gz");
     lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});
     String[] sent = { "This", "is", "an", "easy", "sentence", "." };
     Tree parse = (Tree) lp.apply(Arrays.asList(sent));
     parse.pennPrint();
     System.out.println();
 
     TreebankLanguagePack tlp = new PennTreebankLanguagePack();
     GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
     GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
     Collection tdl = gs.typedDependenciesCollapsed();
     System.out.println(tdl);
     System.out.println();
 
     TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
     tp.printTree(parse);
   }
 }
これを、あらかじめjavacでコンパイルしておく。ParserDemo.classが生成される。

このバイトコードファイルを、Python/NLTKから呼び出すことができる。
 python
 >>> import nltk
 >>> nltk.internals.java(['ParserDemo'],'/home/yamanouc/src/stanford:/usr/local/stanford-parser/stanford-parser.jar')
 Loading parser from serialized file /usr/local/stanford-parser-2008-10-26/englishPCFG.ser.gz ... done [3.0 sec].
 (ROOT [35.686]
   (S [35.580]
     (NP [6.140] (DT [2.301] This))
     (VP [28.298] (VBZ [0.144] is)
       (NP [22.961] (DT [3.221] an) (JJ [8.072] easy) (NN [8.897] sentence)))
     (. [0.002] .)))
 
 [nsubj(sentence-5, This-1), cop(sentence-5, is-2), det(sentence-5, an-3), amod(sentence-5, easy-4)]
 
 (ROOT
   (S
     (NP (DT This))
     (VP (VBZ is)
       (NP (DT an) (JJ easy) (NN sentence)))
     (. .)))
 
 nsubj(sentence-5, This-1)
 cop(sentence-5, is-2)
 det(sentence-5, an-3)
 amod(sentence-5, easy-4) 
 
 (None, None)
 >>>
但し、この使い方は、Javaのプログラムをバッチ的に使うだけしかできず、StdinとStdoutでデータの受け渡しをすることができるだけである。だから、できたトリーは、文字列形式で出力すると、それをもう一度Python内でトリー構造に作り直す方が使い易くなるだろう。(この部分はこれから検討)

**09/03/06 JythonからJava (要するにStanford Parser) を使う。但しJythonはNLTKと共存できない [#z2534183]

-PythonからJavaのプログラムにアクセスする「標準的な」方法は、Jythonを使うことらしい。ラッパーも無いことはなさそうだが、圧倒的にJythonを使え、と書いてある。
-Jythonは、Pythonの実装のひとつで、普通のPythonはC言語系で実装されているのに対し、JythonはJava (とJava VM?) で実装されている。

では、Jython(http://www.jython.org)をインストールする。OreganoではFecore Coreなのでyumでインストールできる。~
Jythonをインストールするためには、Javaが必要。JavaはJavaのサイトから最新のもの(1.6.0_12)をインストール。

JythonでPythonからJavaプログラムを呼び出す手順は([[Jython User Guide:http://www.jython.org/Project/userguide.html]]の[[Accessing Java from Jython:http://www.jython.org/Project/userguide.html#accessing-java-from-jython]]による)
 C:\jython>jython
 Jython 2.0 on java1.2.1
 Type "copyright", "credits" or "license" for more information.
 >>> from java.util import Random
 >>> r = Random()
 >>> r.nextInt()
 -790940041
 >>> for i in range(5):
 ...     print r.nextDouble()
 ...
 0.23347681506123852
 0.8526595592189546
 0.3647833839988137
 0.3384865260567278
 0.5514469740469587
や
 Jython 2.0 on java1.2.1
 Type "copyright", "credits" or "license" for more information.
 >>> from java.util import *
 >>> Random
 <jclass java.util.Random at 31702169>
 >>> Hashtable
 <jclass java.util.Hashtable at 7538094>
など。

では、Stanford Parser (/usr/local/stanford-parser/*) を呼び出すことを考える。~
まずベースとしてJava版のアクセスプログラム(パッケージ中/ParserDemo.java)を見てみよう。
 import java.util.*;
 import edu.stanford.nlp.trees.*;
 import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
 
 class ParserDemo {
   public static void main(String[] args) {
     LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser.gz");
     lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});
 
     String[] sent = { "This", "is", "an", "easy", "sentence", "." };
     Tree parse = (Tree) lp.apply(Arrays.asList(sent));
     parse.pennPrint();
     System.out.println();
 
     TreebankLanguagePack tlp = new PennTreebankLanguagePack();
     GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
     GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
     Collection tdl = gs.typedDependenciesCollapsed();
     System.out.println(tdl);
     System.out.println();
 
     TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
     tp.printTree(parse);
   }
 }
これは、Javaとしてコンパイル(javac ParserDemo.java)⇒実行(java ParserDemo)できることを確認する。
 $ java ParserDemo
 Loading parser from serialized file englishPCFG.ser.gz ... done [3.1 sec].
 (ROOT [35.686]
   (S [35.580]
     (NP [6.140] (DT [2.301] This))
     (VP [28.298] (VBZ [0.144] is)
       (NP [22.961] (DT [3.221] an) (JJ [8.072] easy) (NN [8.897] sentence)))
     (. [0.002] .)))
 
 [nsubj(sentence-5, This-1), cop(sentence-5, is-2), det(sentence-5, an-3), amod(sentence-5, easy-4)]
 
 (ROOT
   (S
     (NP (DT This))
     (VP (VBZ is)
       (NP (DT an) (JJ easy) (NN sentence)))
     (. .)))
 
 nsubj(sentence-5, This-1)
 cop(sentence-5, is-2)
 det(sentence-5, an-3)
 amod(sentence-5, easy-4)
では、これをPythonから呼び出すように書き換える(ParserDemo.py)。
 #!/usr/bin/env python
 # encoding: utf-8
 # -*- coding: utf-8 -*-
 # coding: utf-8
 ##
 
 import sys
 import codecs
 import os
 sys.path.append('/usr/local/stanford-parser/stanford-parser.jar')
 #import java.util.*
 from java.util import *
 #import edu.stanford.nlp.trees.*
 from edu.stanford.nlp.trees import *
 #import edu.stanford.nlp.parser.lexparser.LexicalizedParser
 from edu.stanford.nlp.parser.lexparser import LexicalizedParser
 
 ### A magic for printing UTF-8 characters
 sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
 
 #LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser.gz")
 lp = LexicalizedParser("/usr/local/stanford-parser/englishPCFG.ser.gz")
 #optionstring = {"-maxLength ",  "80", "-retainTmpSubcategories"}
 optionstring = ["-maxLength",  "80", "-retainTmpSubcategories"]
 
 lp.setOptionFlags(optionstring)
 
 ##sent = [ "This", "is", "an", "easy", "sentence", "." ]  #<< This works(1).
 #sent = ( "This", "is", "an", "easy", "sentence", "." )   #This is also acceptable
 #send_newversion = "This is an easy sentence."
 #Tree parse = (Tree) lp.apply(Arrays.asList(sent))
 #parse = lp.apply(Arrays.asList(sent))  #<< This works(1)
 parse = lp.apply(sent) 
 parse.pennPrint()
 print "-" * 80
 #TreebankLanguagePack tlp = new PennTreebankLanguagePack();
 tlp = PennTreebankLanguagePack();
 #GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
 gsf = tlp.grammaticalStructureFactory();
 #GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
 gs = gsf.newGrammaticalStructure(parse);
 #Collection tdl = gs.typedDependenciesCollapsed();
 tdl = gs.typedDependenciesCollapsed();
 print(tdl);
 print "-" * 80
 
 #TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
 tp = TreePrint("penn,typedDependenciesCollapsed");
 tp.printTree(parse);
主な点は、
-PYTHONPATHを設定してstanford parserのjarパッケージを検出できるようにするために、sys.path.appendでstanford-parser.jarのありかを通知する。
-Javaではimport java.util.*としていたものを、from java.util import *にする。Pythonでは多少書き方が違うようだ。
-当然、edu.stanford.nlp.parser.lexparserなどをimportする
-Javaではnewを使ってインスタンスを作っているが、Pythonでは単に変数に代入するだけでいいらしい。たとえばlp = LexicalizedParser(...)。
-lexicalized parserの起動パラメタ(引数)を与えるとき、Javaでは{"abc", "def", "ghi"}のように(文字列の配列として?)与えているが、Pythonでは["abc", "def", "ghi"]のようにしなければならない。具体的にはoptionstring = ["-maxLength",  "80", "-retainTmpSubcategories"]とした。
-JavaのSystem.out.printlnは、Pythonではprint。
-あとはJavaと殆ど同じ。

このプログラムをjythonで起動実行する。
 $jython ParserDemo.py
 Loading parser from serialized file /usr/local/stanford-parser/englishPCFG.ser.gz ... done [2.9 sec].
 (ROOT [35.686]
   (S [35.580]
     (NP [6.140] (DT [2.301] This))
     (VP [28.298] (VBZ [0.144] is)
       (NP [22.961] (DT [3.221] an) (JJ [8.072] easy) (NN [8.897] sentence)))
     (. [0.002] .)))
 --------------------------------------------------------------------------------
 [nsubj(sentence-5, This-1), cop(sentence-5, is-2), det(sentence-5, an-3), amod(sentence-5, easy-4)]
 --------------------------------------------------------------------------------
 (ROOT
   (S
     (NP (DT This))
     (VP (VBZ is)
       (NP (DT an) (JJ easy) (NN sentence)))
     (. .)))
 
 nsubj(sentence-5, This-1)
 cop(sentence-5, is-2)
 det(sentence-5, an-3)
 amod(sentence-5, easy-4)
となった。


**もう1つの方法 javabridge を試す (2015-04-24, mint) [#a64559c2]
参照:
-[[Python から Java を使ってみる:http://d.hatena.ne.jp/shomah4a/20120707/1341671437]]
-[[javabridgeのホーム:http://pythonhosted.org//javabridge/]]

インストール
 pip install javabridge
多少エラー警告が出たが終了。

使ってみる。[[ホームのドキュメントページ:http://pythonhosted.org//javabridge/hello.html]] にある例。
 import os
 import javabridge
 
 javabridge.start_vm(run_headless=True)
 try:
     print javabridge.run_script('java.lang.String.format("Hello, %s!", greetee);',
                                 dict(greetee='world'))
 finally:
     javabridge.kill_vm()
実行できた。

同ページにある他のサンプルのために、wxPythonをインストール。
 yum install wxPython-devel
いくつか依存ファイルもインストールされた。
 インストール:
   wxPython-devel.x86_64 0:2.8.12.0-1.el6
 
 依存性関連をインストールしました:
   bakefile.x86_64 0:0.2.8-3.el6.centos
   python-empy.noarch 0:3.3-5.el6.centos
   wxBase.x86_64 0:2.8.12-1.el6.centos
   wxGTK.x86_64 0:2.8.12-1.el6.centos
   wxGTK-devel.x86_64 0:2.8.12-1.el6.centos
   wxGTK-gl.x86_64 0:2.8.12-1.el6.centos
   wxGTK-media.x86_64 0:2.8.12-1.el6.centos
   wxPython.x86_64 0:2.8.12.0-1.el6




トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS