2011-02-17 6 views
-2

Possible Duplicate:
How to run a python script from java?なぜJythonはこのモジュールを見つけられませんか?

私はJythonのを使用してPythonスクリプトを実行すると、このエラー得ています

:ファイル "C:Facebookの\ LoginPython \ Facebook.py \" "メイン"(最も内側の最後)トレースバックのスレッドで

例外を、 5行目? ImportError:cookielibという名前のモジュールがありません

なぜこれは機能しませんか?

+0

以下のコメントを読むと、OPはまったく異なる質問に対する答えを探しているようです。私はこれが閉鎖されていると警告しています...実際には私は質問を書き換えません。 –

答えて

1

Jythonを使用して、JVMでPythonを実行します。 EclipseでPython(またはJython)を使用して開発するには、PyDevを使用します。

+0

私はこれを試して、このエラーが発生しました:スレッド "main"のトレースバック(最も内側の最後):ファイル "C:\ Facebook \ LoginPython \ Facebook.py"、5行目? ImportError:cookielibという名前のモジュールがありません – user621459

2

Jythonの使用についてもう少し詳しく説明しましたが、これも私の問題を共有していました。これは最善の方法ではないかもしれないが、それは私のためにうまくいくことに注意してください。

私はあなたが文字列の引数を取り、文字列を返すJavaコードからモジュールバーでの関数fooを呼び出すようにしたいと仮定します。

PythonInterpreter interpreter = new PythonInterpreter(); 
    // Append directory containing module to python search path and import it 
    interpreter.exec("import sys\n" + "sys.path.append(pathToModule)\n" + 
    "from bar import foo"); 
    PyObject meth = interpreter.get("foo"); 
    PyObject result = meth.__call__(new PyString("Test!")); 
    String real_result = (String) result.__tojava__(String.class); 

sys.path.append()の部分は、場合にのみ必要ですあなたのモジュールはデフォルトでPythonの検索パスの一部ではありません。もしインポートやモジュールがエラーを見つけられなかった場合は、問題になるかもしれません。 また、JavaとPythonのバージョン間でオブジェクトをキャストする必要がある場合は、必要に応じてそれを調べる必要があります。これまではキャストが簡単なプリミティブ型が必要でした。

+0

実際にFacebookへのログインとして動作するpytonスクリプトを実行しようとしています。私のlibはcookielibです。これは私のコードです:import java.io. *; import org.python.core。*; import org.python.util。*; //インポートorg.python.util.jython; パブリッククラスJavaPython { \t公共の静的な無効メイン(文字列[] argsが)にIOException { \t \t PySystemState.initialize()を投げます。 \t \t PythonInterpreter interp = new PythonInterpreter(); \t \t interp.execfile( "C:\\ Facebook \\ LoginPython \\ Facebook.py"); // \t \t interp.eval(s); \t \t System.out.println( "testing"); \t \t \t \t \t} – user621459

関連する問題