3

1 つのワークスペースに Java プロジェクトと PyDev プロジェクトの両方があります。PyDev プロジェクト (Run > Run As > Python Run を使用したメイン スクリプト、または Python unit-test を使用した関連する単体テスト) を実行すると、コンソール出力は正常に表示されます。ただし、Java プロジェクトに切り替えてメイン クラスを開き、カーソル フォーカスがメイン クラスにあることを確認し、[Run] > [Run as] > [my run config] で実行すると、コンソール、stdout に出力が表示されません。またはstderr。実行/デバッグ > コンソール > 固定幅のコンソールをオンまたはオフにして試しました。同様に、コンソール出力を制限します。「コンソールの割り当て」は[私の実行構成]でチェックされています。

出力を実行構成のファイルにリダイレクトしようとしましたが、実行後にログ ファイルが空です。したがって、stdout/stderr がどこかに閉じ込められていると思われます。Javaプロジェクトを実行すると、この例外がエラーログに約6回確実に表示されるため、問題の原因はPyDevであると思われます。

Launch shortcut 'org.python.pydev.debug.ui.launchShortcut.python.unittest' enablement expression caused exception. Shortcut was removed.

stacktrace:
org.eclipse.core.runtime.CoreException: No property tester contributes a property org.python.pydev.debug.ui.python_type to type class org.eclipse.ui.part.FileEditorInput
    at org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(TypeExtensionManager.java:123)
    at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:96)
    at org.eclipse.core.internal.expressions.CompositeExpression.evaluateOr(CompositeExpression.java:68)
    at org.eclipse.core.internal.expressions.OrExpression.evaluate(OrExpression.java:21)
    at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53)
    at org.eclipse.core.internal.expressions.AndExpression.evaluate(AndExpression.java:29)
    (... and so on)

さらに、Java プロジェクトのみを含む別のワークスペースにある Java プログラムからの印刷も正常に機能します。

PyDev をアンインストールして Eclipse を再起動しようとしましたが、まだ同じ問題が発生しています。PyDev を再インストールした後も、これらのエラーが引き続き発生します。

誰かが以前にこの問題に遭遇したことがありますか、またはそれを修正する方法を知っていますか?

4

2 に答える 2

1

ええと、私はばかみたいです。結局のところ、私は stdout/err をログファイルにリダイレクトしていましたが、それは長い間忘れていたため、見つけにくい場所にスタックしていました。

于 2012-09-04T17:29:50.530 に答える
0

私は同じ問題に遭遇したので、いくつかの調査を行いました。古い問題 (2006-2008) があったようですが、コンソールを割り当てるオプションを起動構成に追加することで解決されました。これは、[実行] -> [デバッグ構成] メニュー オプションの [共通] タブから利用できます。おそらく、これは PyDev のインストール後に単にチェックされていないのでしょうか?

これが新しいバグである場合は、次の 2 つの回避策が提案されています。

  • ローカル デバッグの代わりにリモート デバッグを使用するデバッグ起動構成をセットアップします。
  • System.out へのバッファー付きライターを使用します。

参照用のスレッドは次のとおりです: Eclipse のバグ- https://bugs.eclipse.org/bugs/show_bug.cgi?id=122429

于 2012-09-01T18:48:19.237 に答える