2011-02-10 2 views
1

私は基本的に、cx_Oracleとのデータベース接続の周りに薄いラッパーであるカスタムモジュールを持っています。私はこのモジュールをcx_Oracleのunicode版とnon-unicode版の両方のコンピュータで再利用したいと思います。これは、cx_oracleのユニコードまたは非ユニコードのバージョンがインストールされているかどうかを検出するための推奨方法ですか?

これを行うには、インストールされているバージョンを「検出」する必要があります。私は文字列の接続記述子を使って接続を試みることができました。 TypeErrorが返ってきたら、それがインストールされているUnicodeバージョンだと仮定します。これはちょっとしたクルージングのようです。

これを行うためのより良い/望ましい方法がありますか?

ありがとうございました。

+0

DB-APIアダプターの非ユニコードバージョンがあるという事実は、私には恐怖を感じます。 –

+0

@Ignacio::)何年も前からcx_Oracleのユニコード版がなかったので、そこには非ユニコード版を使った既存のコードがあります。 – Gerrat

答えて

1

try ... exceptを使用すると、この種の検出を行うのに最適です。同じテクニックを使用して、ポータブルアプリケーションを作成するために使用されます。これは、新しい2.7のPythonで動作するSQLiteをライブラリと古い2.4で動作させます。ここで、SQLiteは、よりわかりにくい名前のアドオンモジュールです。