Модуль Python bz2 не скомпилирован по умолчанию - PullRequest
27 голосов
/ 01 мая 2009

Похоже, что Python 2.6.1 не компилирует библиотеку bz2 по умолчанию из исходного кода.

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

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

ОС - Linux 2.4.32-grsec + f6b + gr217 + nfs + a32 + fuse23 + tg +++ opt + c8 + gr2b-v6.194 # 1 SMP вт. 6 июня 15:52:09 PDT 2006 i686 GNU / Linux

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

Ответы [ 4 ]

32 голосов
/ 02 мая 2009

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

24 голосов
/ 02 мая 2009

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

sudo apt-get install libbz2-dev

17 голосов
/ 11 июня 2012

Есть 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
8 голосов
/ 27 июля 2011

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

ням установить bzip2-devel

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...