2012-12-07 49 views
1

我一直在努力几天,让MySQLdb和cx_Oracle在山狮上一起成功运行,无济于事。看起来,我只能得到一个或另一个运行,但不能同时运行。这里是我的规格...如何在Mountain Lion上安装MySQLdb和cx_Oracle?

的Mac OS X 10.8.2与运行(64位),英特尔酷睿i7处理器

PYTHON
〜:蟒蛇--version
的Python 2.7.2

〜:文件which python
的/ usr /斌/蟒:Mach-O的通用二进制用2个架构
的/ usr /斌/蟒(对于架构I386):Mach-O的可执行I386
的/ usr/bin中/ Python的(适用于建筑x86_64的):Mach-O的64位可执行文件x86_64的

在.bashrc中,我已经设置了以下...
出口VERSIONER_PYTHON_PREFER_32_BIT = YES

的MySQL
〜:MySQL的--version
MySQL的版本14.14 DISTRIB 63年5月1日,对于使用的readline苹果darwin10.3.0(I386)5.1
〜:文件which mysql
的/ usr /本地/ MYS QL/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的

甲骨文
版10.2.0.4(32位)即时客户端和SDK

我使用d pip安装cx_Oracle和mysql-python(MySQLdb)。

回溯(最近通话最后一个):目前,我可以交互成功导入cx_Oracle,但是,我当试图以交互方式导入MySQLdb的出现以下错误
文件“”,1号线,在
文件“/图书馆/ Python的/ 2.7 /站点包/ MySQLdb的/ 初始化 py”为19行,在
进口_mysql
导入错误: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(export VERSIONER_PYTHON_PREFER_32_BIT = yes),并且MySQLdb导入工作正常。

回溯(最近通话最后一个):
文件 “”,1号线,在
导入错误:但是,我然后导入cx_Oracle时,遇到下列错误的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错误和叮咚错误等。也许,在这一点上,信息超载已经让我圈了很长时间,以至于我无法清楚地看到解决方案?但我知道必须有一种方法...

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

干杯!

+0

好吧,适当的架构上山狮使用的是64位的。一旦Oracle为Mac推出了新的64位即时客户端,我就能够解决“Symbol not found:_OCIAttrGet”错误。我随后得到了Oracle解决的“Symbol not found:_C_SendHTTPRequest”错误,这个错误也由Oracle解决(参见https://forums.oracle.com/forums/thread.jspa?threadID=2493519)。我现在可以在Mountain Lion上成功运行MySQLdb和cx-Oracle了! – user1886438

回答

0

你写道:

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

你必须像你一样的cx_Oracle安装MySQL 32位,并保持

export VERSIONER_PYTHON_PREFER_32_BIT=yes 
相关问题