Мини-заметка о том, как установить последнюю версию pylibmc с помощью pip в Linux.
pylibmc — это Python-библиотека для работы с memcached, одним из самых популярных решений для кеширования.
Установка весьма тривиально, но если только ты помнишь какие системные библиотеки для этого нужны. Устанавливаем системные библиотеки:
1 | $ sudo apt-get install -y libmemcached-dev zlib1g-dev libssl-dev python-dev build-essential |
Устанавливаем pylibmc:
1 | $ pip install pylibmc |
Этого должно быть достаточно. Проверяем своеобразным smoke-тестом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | python -m pylibmc pylibmc interactive shell Input list of servers, terminating by a blank line. Did you know there's a --binary flag? Try it! Address [127.0.0.1]: mc client available as `mc` >>> |
Радуемся жизни 5 минут и идём работать дальше.
На всякий случай, первые признаки что проблема в системных библиотеках:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | $ pip install pylibmc Downloading/unpacking pylibmc Using download cache from /home/lizzard/.pip_download_cache/http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fpylibmc%2Fpylibmc-1.2.3.tar.gz Running setup.py egg_info for package pylibmc Installing collected packages: pylibmc Running setup.py install for pylibmc building '_pylibmc' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DUSE_ZLIB -I/usr/include/python2.7 -c _pylibmcmodule.c -o build/temp.linux-x86_64-2.7/_pylibmcmodule.o -fno-strict-aliasing In file included from _pylibmcmodule.c:34:0: _pylibmcmodule.h:42:36: фатальная ошибка: libmemcached/memcached.h: Нет такого файла или каталога компиляция прервана. error: command 'gcc' failed with exit status 1 Complete output from command /home/lizzard/.virtualenvs/whenzo/bin/python -c "import setuptools;__file__='/home/lizzard/.virtualenvs/whenzo/build/pylibmc/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-L_KmkZ-record/install-record.txt --single-version-externally-managed --install-headers /home/lizzard/.virtualenvs/whenzo/include/site/python2.7: running install running build running build_py creating build creating build/lib.linux-x86_64-2.7 creating build/lib.linux-x86_64-2.7/pylibmc copying pylibmc/__main__.py -> build/lib.linux-x86_64-2.7/pylibmc copying pylibmc/test.py -> build/lib.linux-x86_64-2.7/pylibmc copying pylibmc/consts.py -> build/lib.linux-x86_64-2.7/pylibmc copying pylibmc/client.py -> build/lib.linux-x86_64-2.7/pylibmc copying pylibmc/__init__.py -> build/lib.linux-x86_64-2.7/pylibmc copying pylibmc/pools.py -> build/lib.linux-x86_64-2.7/pylibmc running build_ext building '_pylibmc' extension creating build/temp.linux-x86_64-2.7 gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DUSE_ZLIB -I/usr/include/python2.7 -c _pylibmcmodule.c -o build/temp.linux-x86_64-2.7/_pylibmcmodule.o -fno-strict-aliasing In file included from _pylibmcmodule.c:34:0: _pylibmcmodule.h:42:36: фатальная ошибка: libmemcached/memcached.h: Нет такого файла или каталога компиляция прервана. error: command 'gcc' failed with exit status 1 ---------------------------------------- Command /home/lizzard/.virtualenvs/whenzo/bin/python -c "import setuptools;__file__='/home/lizzard/.virtualenvs/whenzo/build/pylibmc/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-L_KmkZ-record/install-record.txt --single-version-externally-managed --install-headers /home/lizzard/.virtualenvs/whenzo/include/site/python2.7 failed with error code 1 in /home/lizzard/.virtualenvs/whenzo/build/pylibmc Storing complete log in /home/lizzard/.pip/pip.log |