0

環境: Windows 7 の Eclipse Indigo または Eclipse Juno 4.2。 Oracle 11g XE (ローカル インストール) Django プロジェクトを pydev で実行しているときに、ページ アクセスを試みると、「Oracle 環境ハンドルを取得できません」というメッセージが表示されます。

通常、TNS_ADMIN が正しい tnsnames.ora ディレクトリを指すように設定するだけです。

コマンド ラインから manage.py を実行すると、すべてが期待どおりに機能します。最初はおそらく環境変数の違いかと思いましたが、TNS_ADMINの値は同じです。いずれにせよ、Eclipse 実行構成で TNS_ADMIN を明示的に設定しても違いはありませんでした。

PYTHONPATH は 2 つの間で多少異なっていたので、実行構成でそれをオーバーライドして、違いが生じるかどうかを確認しました。いいえ。

cx_Oracle のソースを見ると、エラーは OCIEnvNlsCreate の呼び出しに失敗したことが原因のようですが、Oracle のドキュメントには明らかなことは何もありませんでした。

Pydevでこれを取得している理由を誰かに教えてもらえますか?

4

1 に答える 1

0

私はそれを考え出した。私は PATH 変数を十分に調べていませんでした。

基本的に、パスの先頭にスクリプト ディレクトリ (OCI.DLL を含む) を必要とする仮想環境がありましたが、私の Oracle インストールはその前にありました。したがって、エラー メッセージは基本的に、間違った OCI.DLL (cx_Oracle がバインドされていたものではなく、私の Oracle インストールに関連付けられているもの) を呼び出した結果でした。

パスが変更されたため、仮想環境のアクティブ化は機能しました。Pydev は別の方法で動作するため、Eclipse は最初に Oracle インストールで私の標準パスを見ていました。

于 2012-09-10T17:46:24.337 に答える