几天来,我一直试图让MySQLdb和cx_Oracle成功地在山狮上一起运行,但没有结果。看来我只能让其中一个人跑,但不能两者兼得。这是我的规格..。
MacOSX10.8.2与英特尔核心i7处理器(64位)一起运行
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中,我设置了以下.
导出VERSIONER_PYTHON_PREFER_32_BIT=yes
MySQL
~:mysql -版本
mysql 14.14远端5.1.63,苹果-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
甲骨文
版本10.2.0.4 (32位)即时客户端和SDK
我使用pip同时安装了cx_Oracle和MySQLdb (MySQLdb)。目前,我可以成功地以交互方式导入cx_Oracle,但是,在尝试交互导入MySQLdb时,会出现以下错误:
回溯(最近一次调用):
文件"",第1行,在
文件"/Library/Python/2.7/site-packages/MySQLdb/init.py",第19行,在
import \_mysqldlopen(/Library/Python/2.7/site-packages/_mysql.so,2):没有找到合适的图像。确实发现:
/Library/Python/2.7/site-packages/\_mysql.so: mach-o, but wrong architecture在完成了所有的阅读和故障排除之后,我了解到当Python不在同一体系结构上运行时,这个错误就会出现。因为我有64位版本的MySQL,所以我可以删除我在.bashrc中添加的环境变量,该变量将首选项设置为32位版本的Python (导出VERSIONER_PYTHON_PREFER_32_BIT=yes)和MySQLdb导入工作。但是,在导入cx_Oracle时,我会得到以下错误:
回溯(最近一次调用):
文件"",第1行,在
( 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位跟踪一直追溯到我的甲骨文安装方面,有矛盾的信息。我遇到过分割错误、libclntsh.dylib错误和clang错误等等。也许,在这一点上,信息过载使我陷入了一个很长的圈子,以至于我看不到解决方案。但我知道一定有办法..。
我预先感谢你在这方面提供的任何协助。
干杯!
发布于 2013-07-01 11:06:18
你写道:
/usr/local/mysql/bin/mysql: Mach-O 64-bit executable x86_64您必须安装MySql 32位,就像安装cx_Oracle一样
export VERSIONER_PYTHON_PREFER_32_BIT=yeshttps://stackoverflow.com/questions/13770774
复制相似问题