我应该在32位模式下使用32位Python(由于oracle instantclient-10.2.0.4,它在macosx中是64位的错误,但在32位模式下工作)。到目前为止一切都很好,直到我找到了动物园管理员。实际上,ZooKeeper Python绑定(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
Python2.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=“-ARCH i386”,configure--build=i386--host=i386,ARCH-i386…,等等,.dylib总是64位的)。在
^{pr2}$最糟糕的是没有内置i386架构,所以我不能用“lipo”提取这个i386版本。在
因此,主要问题是:如何使ZooKeeper python绑定与64位macosxlion(10.7)中的32位python一起工作?在
第二个问题是:如何在64位Mac OS X Lion 10.7中以32位模式构建ZooKeeper?在
将
CFLAGS
传递给配置脚本:我自己修好的。下面是解决方案:http://blog.nolar.info/building-32-bit-zookeeper-python-bindings-in-64-bit-mac-os-x/(简而言之,在Makefile中添加“-archi386”到CC定义中)。在
相关问题 更多 >
编程相关推荐