Python 安装libmemcached时gcc失败,退出状态为1

Python 安装libmemcached时gcc失败,退出状态为1,python,gcc,libmemcache,Python,Gcc,Libmemcache,在尝试按照python libmemcached的指令进行操作时,我在步骤3(“python setup.py install”)遇到了问题 我几乎不知道这意味着什么,也不知道该怎么办。我的comp(4.0和4.2)上确实有多个gcc版本,从谷歌上搜集到的信息足以说明这一点。否则我就完全输了 提前谢谢 [编辑:遵循@phihag的指示后] 我现在收到一个完全不同但仍然令人困惑的错误: (gigmash_venv)m:python-libmemcached matthewparrilla$

在尝试按照python libmemcached的指令进行操作时,我在步骤3(“python setup.py install”)遇到了问题

我几乎不知道这意味着什么,也不知道该怎么办。我的comp(4.0和4.2)上确实有多个gcc版本,从谷歌上搜集到的信息足以说明这一点。否则我就完全输了

提前谢谢

[编辑:遵循@phihag的指示后]

我现在收到一个完全不同但仍然令人困惑的错误:

    (gigmash_venv)m:python-libmemcached matthewparrilla$ python setup.py build
    running build
    running build_py
    running build_ext
    building 'cmemcached_imp' extension
    gcc-4.0 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -g -O2 -DNDEBUG -g -O3 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c cmemcached_imp.c -o build/temp.macosx-10.3-fat-2.7/cmemcached_imp.o
    cmemcached_imp.c:237:36:cmemcached_imp.c:237:36: error:  error: libmemcached/memcached.h: No such file or directory
    libmemcached/memcached.h: No such file or directory
    In file included from cmemcached_imp.c:238:
    split_mc.h:14: warning: ‘struct memcached_st’ declared inside parameter list
    split_mc.h:14: warning: its scope is only this definition or declaration, which is probably not what you want
    split_mc.h:17: warning: ‘struct memcached_st’ declared inside parameter list
    In file included from cmemcached_imp.c:238:
    split_mc.h:14: warning: ‘struct memcached_st’ declared inside parameter list
    (and this goes on for many many more lines)...

发生此错误的原因是文件
cmemcached\u imp.c
不存在,但必须在此步骤中编译

首先,编辑文件
cmemcached_imp.pyx
,并修复第506行中的打字错误。而不是

sys.stderr.write("[cmemcached]%s only support string: %s" % (cmd, key))
应该说

sys.stderr.write("[cmemcached]%s only support string: %s" % (cmd, keys))
然后,安装并执行

$ cython cmemcached_imp.pyx
cython应该以静默方式生成文件
cmemcached\u imp.c

虽然这将修复即时错误,但您可能还需要替换

ext_modules=[Extension('cmemcached_imp',
            ['cmemcached_imp.pyx', 'split_mc.c'],
setup.py中使用

ext_modules=[Extension('cmemcached_imp',
            ['cmemcached_imp.c', 'split_mc.c'],
作为对编辑的回应:

如果逐字按照说明操作,还需要在本地目录中缓存libmemcached。执行

$ ln -s $(pwd)/../libmemcached-0.40/libmemcached

用python libmemcached来实现这一点。

非常感谢您的回复和帮助。我按照您的建议进行了更改,但现在收到了一个完全不同的错误,对我来说几乎没有意义。我粘贴了上面看起来最相关的行。@马特:好吧,您收到了一个不同的错误,因为第一个错误已经修复,但是源代码和指令还有其他问题。又更新了一行。啊,还有一个新错误。。。我决定在这里改变策略。感谢您的帮助@phihagcmemcached_imp.pyx此文件存放在哪里@MattParrilla@abhishek恐怕我一点也不记得了。
$ ln -s $(pwd)/../libmemcached-0.40/libmemcached