2

http://code.google.com/p/python-libmemcached/の python-libmemcached の指示に従おうとすると、ステップ 3 (「python setup.py install」) で問題が発生します。

    (gigmash_venv)m:python-libmemcached matthewparrilla$ python setup.py build
    running build
    running build_py
    creating build
    creating build/lib.macosx-10.3-fat-2.7
    copying cmemcached.py -> build/lib.macosx-10.3-fat-2.7
    running build_ext
    building 'cmemcached_imp' extension
    creating build/temp.macosx-10.3-fat-2.7
    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
    powerpc-apple-darwin9-gcc-4.0.1: cmemcached_imp.c: No such file or directory
    powerpc-apple-darwin9-gcc-4.0.1: no input files
    i686-apple-darwin9-gcc-4.0.1: cmemcached_imp.c: No such file or directory
    i686-apple-darwin9-gcc-4.0.1: no input files
    lipo: can't figure out the architecture type of: /var/folders/0o/0oHT3RmJF80rpIJtdbegzE+++TI/-Tmp-//cc9xQqQ6.out
    error: command 'gcc-4.0' failed with exit status 1

これが何を意味するのか、何をすべきなのか、私にはほとんどわかりません。私のコンプには複数のバージョンの gcc (4.0 と 4.2) があり、グーグルで十分に調べたところ、問題になる可能性があります。そうでなければ完全に失われました。

前もって感謝します。

[編集: @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)...
4

1 に答える 1

4

ファイルがそこにないためにエラーが発生しますcmemcached_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をインストールして実行します

$ cython cmemcached_imp.pyx

cython は黙ってファイルを生成するはずですcmemcached_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 で。

于 2011-10-02T23:53:26.340 に答える