使用pylibmc时出现问题。当我“导入pylibmc”时,我会收到一些错误:
ImportError:/usr/local/python2.6/lib/python2.6/site-packages/_pylibmc.so:undefined symbol:memcached_server_list。
我的环境是Python 2.6.5,libmemcached 0.39,memcached 1.4.5
那么,我该如何解决呢?
非常感谢。
更新1: 我再次阅读pylibmc doc,发现:libmemcached 0.32或更高版本(最后一次测试0.38)。那么我的客人也许我的libmemcached太新了,无法使用。
更新2: 我测试了libmemcached 0.38,_pylibmc.so中还有另一个错误:未定义的符号:memcached_server_count。
答案 0 :(得分:1)
似乎有一些关于符号memcached_server_list的混淆:libmemcached 0.38暴露它,但0.39没有。该符号甚至已从文档中删除。 pylibmc依赖于memcached_server_list来获取其get_stats()方法。我怀疑pylibmc应该使用memcached_server_cursor。
所以我认为我们可以说pylibmc 1.0需要libmemcached< = 0.38。
答案 1 :(得分:0)
听起来像链接器问题。这是什么系统? _pylibmc.so如何链接到libmemcached.so?你能提供构建阶段运行的命令,也许还有ldd输出吗?
答案 2 :(得分:0)
我遇到了同样的问题,我通过使用libmemcached 0.34然后将环境变量LD_LIBRARY_PATH设置为/ usr / local / lib(存储了libmemcache库)来实现它。