1

UbuntuSoftwareCenterを介してUbuntu12.04にインストールされたEclipse3.7.2にJythonインタープリターをセットアップしようとしています。EclipseはEclipseプラットフォーム3.7.2-1バージョンです。PyDevはユーザーマニュアルに示されているようにインストールされており(または少なくともそれが私が信じていることです)、PyDevのアップデートとナイトリービルドの両方でインタープリターをセットアップしようとしました。現在、PyDevのバージョンは次のとおりです。PyDevfor Eclipse 2.6.0.2012050900 org.python.pydev.feature.feature.group Aptana

Jytonもインストールされます:panton @ maleficio:〜$ dpkg -l | grep -i jython ii jython2.5.1-2ubuntu2PythonはJavaとシームレスに統合されています

そして私はそれを「適切な」ディレクトリで見つけることができます:

panton @ maleficio:〜$ ls -1 /usr/share/java/jython* /usr/share/java/jython-2.5.1.jar
/usr/share/java/jython.jar panton @ maleficio:〜$

(2番目のファイルは最初のファイルへの単なるリンクです)。

つまり、新しいプロジェクトを作成しようとすると、[ファイル]->[新規]->[プロジェクト]->[PyDev]-> [PyDevプロジェクト]、次に3つのプロジェクトタイプが提供されます。インタプリタを選択し、JythonとIron Pythonを選択します。これは、「続行する前に、関連する設定でインタプリタを設定してください」ということを(両方とも)親切に思い出させてくれます。

次の段落では、IronPythonにはPrecisePagolin(Ubuntu 12.04)の「公式」ディストリビューションがまだないため、Jythonオプションを使用します。

次に、[ウィンドウ]-> [設定]に移動し、[インタープリター]-[Jython]、[新規]の順に選択し、適切な名前Jython 2.5.1を選択し、次に正しいパス/usr/share/java/jython-2.5.1を選択します。 .jar、

[OK]を押すと、次のメッセージが表示されます。

インタプリタに関する情報の取得中にエラーが発生しました。一般的な理由は次のとおりです。-サポートされていないバージョンを使用している(Jythonは2.1以上である必要があるため、2.5.1バージョンです)-無効なインタープリターを指定しています。リンクではなく実際のファイルを選択するため、まったく違います。......................................。

エラーログには次のように記載されています。

    See error log for details.
    No output was in the standard output when trying to create the interpreter info.
    The error output contains:>>error importing site
        at org.python.core.PySystemState.getPath(PySystemState.java:513)
        at org.python.core.PySystemState.getPathLazy(PySystemState.java:502)
        at org.python.core.util.RelativeFile.<init>(RelativeFile.java:21)
        at org.python.core.packagecache.PathPackageManager.packageExists(PathPackageManager.java:43)
        at org.python.core.packagecache.SysPackageManager.packageExists(SysPackageManager.java:159)
        at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:132)
        at org.python.core.PyObject.__findattr__(PyObject.java:869)
        at org.python.core.packagecache.PackageManager.lookupName(PackageManager.java:136)
        at org.python.core.JavaImporter.find_module(JavaImporter.java:39)
        at org.python.core.JavaImporter.find_module(JavaImporter.java:25)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)

    java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/jruby/ext/posix/util/Platform
    <<

------------------------------------------------------
The Workspace log on Eclipse says:
-------------------------------------------------------
eclipse.buildId=I20110613-1736
java.version=1.6.0_24
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64

Error
Sun May 20 08:39:09 CEST 2012
No output was in the standard output when trying to create the interpreter info.
The error output contains:>>error importing site
    at org.python.core.PySystemState.getPath(PySystemState.java:513)
    at org.python.core.PySystemState.getPathLazy(PySystemState.java:502)
    at org.python.core.util.RelativeFile.<init>(RelativeFile.java:21)
    at org.python.core.packagecache.PathPackageManager.packageExists(PathPackageManager.java:43)
    at org.python.core.packagecache.SysPackageManager.packageExists(SysPackageManager.java:159)
    at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:132)
    at org.python.core.PyObject.__findattr__(PyObject.java:869)
    at org.python.core.packagecache.PackageManager.lookupName(PackageManager.java:136)
    at org.python.core.JavaImporter.find_module(JavaImporter.java:39)
    at org.python.core.JavaImporter.find_module(JavaImporter.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)

java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/jruby/ext/posix/util/Platform
<<

java.lang.RuntimeException: No output was in the standard output when trying to create the interpreter info.
The error output contains:>>error importing site
    at org.python.core.PySystemState.getPath(PySystemState.java:513)
    at org.python.core.PySystemState.getPathLazy(PySystemState.java:502)
    at org.python.core.util.RelativeFile.<init>(RelativeFile.java:21)
    at org.python.core.packagecache.PathPackageManager.packageExists(PathPackageManager.java:43)
    at org.python.core.packagecache.SysPackageManager.packageExists(SysPackageManager.java:159)
    at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:132)
    at org.python.core.PyObject.__findattr__(PyObject.java:869)
    at org.python.core.packagecache.PackageManager.lookupName(PackageManager.java:136)
    at org.python.core.JavaImporter.find_module(JavaImporter.java:39)
    at org.python.core.JavaImporter.find_module(JavaImporter.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)

java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/jruby/ext/posix/util/Platform
<<
    at org.python.pydev.ui.interpreters.AbstractInterpreterManager.createInfoFromOutput(AbstractInterpreterManager.java:415)
    at org.python.pydev.ui.interpreters.JythonInterpreterManager.doCreateInterpreterInfo(JythonInterpreterManager.java:77)
    at org.python.pydev.ui.interpreters.JythonInterpreterManager.internalCreateInterpreterInfo(JythonInterpreterManager.java:46)
    at org.python.pydev.ui.interpreters.AbstractInterpreterManager.createInterpreterInfo(AbstractInterpreterManager.java:369)
    at org.python.pydev.ui.pythonpathconf.ObtainInterpreterInfoOperation.run(ObtainInterpreterInfoOperation.java:81)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

Jrubyはすでにインストールされており、バージョンは次のとおりです。

panton @ maleficio:〜$ dpkg -l | grep -i jruby

ii jruby 1.5.6-2 100%純粋-RubyのJava実装

jarファイル/usr/lib/jruby/lib/jruby.jarが存在し、両方のエラーダンプで参照されるクラスが含まれています。

要求に応じて、次のコマンドを実行します:
〜$ java -Dpython.home = / usr / share / java -classpath /usr/share/java/jython-2.5.1.jar:$CLASSPATH org.python.util.jython plugins / org.python.core.PySystemState.getPathLazy(PySystemState.java:502)のorg.python.core.PySystemState.getPath(PySystemState.java:513)のorg.python.pydev / pysrc/interpreterInfo.pyエラーインポートサイト.python.core.util.RelativeFile。(RelativeFile.java:21)at org.python.core.packagecache.PathPackageManager.packageExists(PathPackageManager.java:43)at org.python.core.packagecache.SysPackageManager.packageExists(SysPackageManager。 java:153)org.python.core.PyJavaPackageで。org.python.core.PyObjectのfindattr_ex(PyJavaPackage.java:132)。findattr(PyObject.java:869)org.python.core.packagecache.PackageManager.lookupName(PackageManager.java:136)at org.python.core.JavaImporter.find_module(JavaImporter.java:39)atorg.python.core。 javaImporter.find_module(JavaImporter.java:25)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl。 43)java.lang.reflect.Method.invoke(Method.java:616)で

java.lang.NoClassDefFoundError:java.lang.NoClassDefFoundError:org / jruby / ext / posix / util / Platform

これに関するどんな助けも歓迎されます。

4

2 に答える 2

2

私はちょうど同じ問題を抱えていたので、Ubuntu 12.04リポジトリで提供されているJythonバージョンをアンインストールし、プロジェクトのWebサイトで提供されているバージョンを使用してJythonを再インストールすることで解決しました。Fabio Zadrozny はバグについて正しいです。ありがとうございました。

于 2012-07-30T05:37:40.533 に答える
2

Jython は何らかの理由で JRuby と競合しているようです (これは私には非常に奇妙に思えます)。

実行してみてください:

java -Dpython.home=/usr/share/java -classpath /usr/share/java/jython-2.5.1.jar:%CLASSPATH% org.python.util.jython plugins/org.python.pydev/pysrc/interpreterInfo.py

コマンドラインからそれを実行して得た出力を貼り付けますか?


編集:

うーん、それは PyDev の問題ではないようです (単に 'import sys;import os.path' を使用して、そのコマンド ラインでファイルの interpreterInfo.py を変更した場合、同じエラーが発生すると思います。確認してください。それ)。

私の推測では、Jython と JRuby が競合していると思われます... Jython の実行時に JRuby を削除するように CLASSPATH を設定してみてください (そのコマンド ラインを使用してシェルで動作させることができれば、Eclipse を次の場所から起動できるはずです)。 Jython インタープリターを適切に構成します)。


編集2:

わかりました、Jython をざっと見てみましたが、これは Jython のバグのようです。そこにあるバージョンで...参照:https://bitbucket.org/jython/jython/src/fd2130e12b7c/src/org/python/core/PySystemState.javaインポートorg.jruby.ext.posixがあります.util.Platform、絶対に存在しないはずです)。リポジトリの最新バージョンでは、すでにimport jnr.posix.util.Platformに変更されているため、明らかに、適切な Jython バージョンを取得することがほとんどの問題です (Linux リポジトリにあるものは問題ない可能性があります)。 -- または、少なくとも、Jython が機能するには PYTHONPATH に JRuby が必要です。これは非常に厄介です (ただし、Jython 側では既に修正されているはずです)。

于 2012-05-24T23:44:41.843 に答える