私は、Mountain Lion で MySQLdb と cx_Oracle の両方を正常に動作させるために何日も試みてきましたが、役に立ちませんでした。どちらか一方しか実行できず、両方は実行できないようです。これが私のスペックです...
(64 ビット) Intel Core i7 プロセッサを搭載した Mac OS X 10.8.2
PYTHON :
~: python --バージョン
Python 2.7.2
~: ファイルwhich python
/usr/bin/python: 2 つのアーキテクチャを持つ Mach-O ユニバーサル バイナリ
/usr/bin/python (アーキテクチャ i386 の場合): Mach-O 実行可能ファイル i386
/usr/bin/python (アーキテクチャ x86_64 の場合): Mach-O 64 ビット実行可能 x86_64
.bashrc で、次のように設定しました...
export VERSIONER_PYTHON_PREFER_32_BIT=yes
MySQL :
~: mysql --version
mysql Ver 14.14 Distrib 5.1.63, for apple-darwin10.3.0 (i386) using readline 5.1
~: file which mysql
/usr/local/mysql/bin/mysql: Mach-O 64 ビット実行ファイル x86_64
MySQLdb :
~: ファイル/Library/Python/2.7/site-packages/_mysql.so /Library/Python/2.7/site-packages/_mysql.so:
Mach-O 64 ビット バンドル x86_64
Oracle :
バージョン 10.2.0.4 (32 ビット) インスタント クライアントおよび SDK
pip を使用して、cx_Oracle と mysql-python (MySQLdb) の両方をインストールしました。現在、cx_Oracle を対話的に正常にインポートできますが、MySQLdb を対話的にインポートしようとすると、次のエラーが発生します。
トレースバック (最新の最後の呼び出し):
ファイル ""、1 行目、
ファイル " /Library/Python/2.7/site-packages/MySQLdb/ init .py"、19 行目、
インポート _mysql の
ImportError: dlopen(/Library/Python /2.7/site-packages/_mysql.so, 2): 適切なイメージが見つかりません。見つかりました:
/Library/Python/2.7/site-packages/_mysql.so: mach-o、しかし間違ったアーキテクチャ
すべての読み取りとトラブルシューティングを行った後、Python と MySQL が同じアーキテクチャで実行されていない場合にこのエラーが発生することがわかりました。私は 64 ビット版の MySQL を持っているので、32 ビット版の Python (export VERSIONER_PYTHON_PREFER_32_BIT=yes) を設定する .bashrc に入れた環境変数を削除すると、MySQLdb のインポートが機能します。ただし、cx_Oracle をインポートすると、次のエラーが発生します。
トレースバック (最新の最後の呼び出し):
ファイル ""、1 行目、
ImportError: dlopen(/Library/Python/2.7/site-packages/cx_Oracle.so, 2): シンボルが見つかりません: _OCIAttrGet
参照元: /Library/Python /2.7/site-packages/cx_Oracle.so
期待される場所: /Library/Python/2.7/site-packages/cx_Oracle.so のフラットな名前
空間
このうさぎの穴に飛び込むと、cx_Oracle 用にセットアップしたもの、32 ビット アーキテクチャが必要なもの、および Oracle インストールまでさかのぼって 64 ビット トレースが必要なものについて矛盾する情報が見つかります。セグメンテーション フォールト エラー、libclntsh.dylib エラー、clang エラーなどに遭遇しました。おそらく、この時点で、情報過多により長い間ぐるぐる回っていて、解決策がはっきりとわかりませんか? しかし、私は方法がなければならないことを知っています...
これについて何かご支援いただきありがとうございます。
乾杯!