Подтвердить что ты не робот

Модуль Python bz2 не компилируется по умолчанию

Кажется, что Python 2.6.1 не компилирует библиотеку bz2 по умолчанию из источника.

У меня нет lib-dynload/bz2.so

Какой самый быстрый способ добавить его (без установки Python с нуля)?

OS - это Linux 2.4.32-grsec + f6b + gr217 + nfs + a32 + fuse23 + tg+++ opt + c8 + gr2b-v6.194 # 1 SMP Tue Jun 6 15:52:09 PDT 2006 i686 GNU/Linux

IIRC Я использовал только флаг --prefix.

4b9b3361

Ответ 1

Вам нужно, чтобы libbz2.so(библиотека libbz2 общего назначения) была правильно установлена, чтобы Python мог создать для нее свой собственный интерфейс. Обычно это будет из пакета в вашем дистрибутиве Linux, который, вероятно, имеет имена "libbz2" и "dev" в имени пакета.

Ответ 2

Используйте управление пакетами поставщика, чтобы добавить пакет, содержащий файлы разработки для bz2. Обычно это пакет под названием "libbz2-dev". Например. на Ubuntu

sudo apt-get install libbz2-dev

Ответ 3

Есть 2 решения этой проблемы:

вариант 1. установить bzip2-devel

В Debian и производных вы можете легко установить это:

sudo apt-get install bzip2-devel

вариант 2. сборка и установка bzip2

В файле README пакета bzip2 объясняется, что на некоторых платформах, а именно на тех, где используются двоичные файлы Linux-ELF, вам необходимо создать дополнительный общий объект файл, как показано ниже:

wget http://bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar xpzf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make
make -f Makefile-libbz2_so
make install PREFIX=/path/to/local # /usr/local by default

Критическим битом здесь является следующая команда:

make -f Makefile-libbz2_so

Я сделал это и после этого попытался снова создать Python, как показано ниже:

cd Python-2.7.3
./configure --prefix=/path/to/local 
make install

Ответ 4

Если вы пытаетесь скомпилировать Python на RHEL5, пакет называется bzip2-devel, и если у вас установлен RHN, он может быть установлен с помощью этой команды:

yum install bzip2-devel

Как только это будет сделано, вам не нужны никакие опции --enable-bz2 или -with-bz2, но вам может понадобиться --enable-shared.