1

私のデスクトップでは、Oracle に接続する小さな Pylons アプリを作成しました。現在、Win2k3 x64 を実行しているサーバーにデプロイしようとしています。(私のデスクトップは 32 ビット XP です) サーバー上の Oracle インストールも 64 ビットです。

OCI dll のロードに関するエラーが発生していたので、32 ビット クライアントを にインストールしましたC:\oracle32

これをPATH環境変数に追加すると、うまく機能します。しかし、Pylons アプリをサービスとして (このレシピを使用して) 実行したいので、この 32 ビット ライブラリを他のすべてのアプリケーションのパスに配置したくありません。

使ってみsys.path.append("C:\\oracle32\\bin")ましたが、うまくいかないようです。

4

3 に答える 3

3

sys.path は PYTHONPATH の python の内部表現です。PATH を変更したいように思えます。

これが機能するかどうかはわかりませんが、試すことができます:

import os
os.environ['PATH'] += os.pathsep + "C:\\oracle32\\bin"
于 2008-09-18T19:26:04.367 に答える
0

Python アプリケーションが 64 ビット空間で実行される場合、32 ビット バージョンではなく、64 ビット インストールの Oracle の oci.dll にアクセスする必要があります。通常は、スクリプトを実行する前に、適切な Oracle ホームの bin ディレクトリを含むようにシステム パスを更新します。ソリューションは、Python から Oracle にアクセスするために使用しているコンポーネントによっても異なる場合があります。

于 2008-09-27T02:21:39.943 に答える
0

python.exe を実行する前に、c:\Oracle32\bin ディレクトリを環境の PATH 変数に追加する必要があります。
Linux では、同様の理由で LD_LIBRARY_PATH 変数を設定して、Python を呼び出す前に Oracle ライブラリを見つける必要があります。変数を設定して Python を呼び出すラッパー シェル スクリプトを使用します。
あなたの場合、サービスの起動時に、PATH変数を設定する.cmdまたは.vbsスクリプトを呼び出してから、.pyスクリプトでpython.exeを呼び出すことができます。

これが役立つことを願っています!

于 2008-09-24T02:58:07.503 に答える