2011-12-05 46 views
1

我应该在32位模式下使用32位Python(由于oracle instantclient-10.2.0.4,它在64位Mac OS X中的段错误,但在32位工作)。到目前为止,一切都很好,直到我有了动物园管理员。其实,ZooKeeper Python绑定(zkpython)。如何在Mac OS X 10.7 Lion中以32位模式构建zookeeper/zkpython?

我试图让zkpython为32位,,同时保持客户端本身64位,因为它是默认情况下。但在这种情况下,我得到和导入时错误:

Python 2.6.7 (r267:88850, Jul 31 2011, 19:30:54) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin 
>>> import zookeeper 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: dlopen(./zookeeper.so, 2): Symbol not found: _ZOO_ASSOCIATING_STATE 
    Referenced from: /Users/nolar/Downloads/zoo/zookeeper.so 
    Expected in: flat namespace 
in /Users/nolar/Downloads/zoo/zookeeper.so 

同为Python 2.7版(包括2.6和2.7是32位在这里,和所有的sys.maxint == 2147483647)。我想这是32位Zookeeper客户端,因为在编译zkpython时只提示一个有意义的警告:

ld:warning:忽略文件../../..//src/c/.libs //libzookeeper_mt.dylib,文件是为不支持的文件格式而建立的,它不是被链接的架构(i386)

所以,我试图让zookeeper客户端本身为32位。但无论我尝试,我不能建立它在32位模式:libzookeeper_mt.2.dylib始终是64位(我试过ARCH_FLAGS =“ - 拱i386”,配置 - 建设= i386 - 主机= i386,拱-i386 ...等 - .dylib始终是64位)。

$ file libzookeeper_mt.2.dylib 
libzookeeper_mt.2.dylib: Mach-O 64-bit dynamically linked shared library x86_64 

而这里最糟糕的一点是,是没有内置I386拱,所以我不能提取与“脂”这个i386的版本。

那么,的主要问题是:如何使ZooKeeper python绑定与64位Mac OS X Lion(10.7)中的32位Python一起工作?

第二个问题是:如何在64位Mac OS X Lion 10.7中以32位模式构建ZooKeeper?

回答

0

通行证CFLAGS的配置脚本:

export CFLAGS="-pipe -O2 -arch i386" 
./configure … 
+0

它忽略了CFLAGS,LDFLAGS等我试过了。 –

相关问题