如何在Mountain Lion上安装MySQLdb和cx_Oracle?

时间:2012-12-07 20:50:23

标签: osx-mountain-lion mysql-python cx-oracle

我已经尝试了几天让MySQLdb和cx_Oracle在Mountain Lion上一起成功运行无济于事。似乎我只能运行其中一个而不是两个。这是我的规格...

使用(64位)Intel Core i7处理器运行的Mac OS X 10.8.2

PYTHON
〜:python --version
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,对于apple-darwin10.3.0(i386),使用readline 5.1
〜:文件which mysql
/ usr / local / mysql / bin / mysql:Mach-O 64位可执行文件x86_64

MySQLdb的
〜:file /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位)Instant Client和SDK

我使用pip来安装cx_Oracle和mysql-python(MySQLdb)。目前,我可以成功地以交互方式导入cx_Oracle,但是,在尝试以交互方式导入MySQLdb时出现以下错误:

追踪(最近的呼叫最后):
  文件“”,第1行,在中   文件“/Library/Python/2.7/site-packages/MySQLdb/init.py”,第19行,中
    import _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,我可以删除我放在.bashrc中的环境变量,它将首选项设置为32位版本的Python(导出VERSIONER_PYTHON_PREFER_32_BIT = yes)并且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位架构以及需要64位跟踪以及我的Oracle安装需要什么的相互矛盾的信息。我遇到了分段错误错误,libclntsh.dylib错误和clang错误等。也许,此时,信息过载已经让我圈了很长时间,以至于我无法清楚地看到解决方案?但我知道必须有办法...

我事先感谢你们提供任何帮助。

干杯!

1 个答案:

答案 0 :(得分:0)

你写道:

/usr/local/mysql/bin/mysql: Mach-O 64-bit executable x86_64

您必须像安装cx_Oracle一样安装MySql 32位并保留

export VERSIONER_PYTHON_PREFER_32_BIT=yes