Как мне получить Python для компиляции с libz? - PullRequest
1 голос
/ 19 марта 2012

версия python 3.3, которую я только что скомпилировал из источника:

$ ldd ./python
    linux-gate.so.1 =>  (0xb776c000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb773b000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7736000)
    libutil.so.1 => /lib/i386-linux-gnu/libutil.so.1 (0xb7731000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7707000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7589000)
    /lib/ld-linux.so.2 (0xb776d000)

по сравнению с моей системной версией python3 (3.2):

$ ldd `which python3`
    linux-gate.so.1 =>  (0xb7777000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb7746000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7741000)
    libutil.so.1 => /lib/i386-linux-gnu/libutil.so.1 (0xb773c000)
    libssl.so.1.0.0 => /lib/i386-linux-gnu/libssl.so.1.0.0 (0xb76ef000)
    libcrypto.so.1.0.0 => /lib/i386-linux-gnu/libcrypto.so.1.0.0 (0xb754b000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7536000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb750c000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb738d000)
    /lib/ld-linux.so.2 (0xb7778000)

libz и некоторые другие библиотеки по какой-то причине отсутствуют. Я попробовал решение здесь , но оно не сработало. Я в тупике - есть идеи?

Ответы [ 3 ]

1 голос
/ 19 марта 2012

Похоже, что ответ был в Модули / Настройка (и Модули / Setup.dist). Раскомментированная строка 358 сделала свое дело:

# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
0 голосов
/ 08 мая 2017

Просто убедитесь, что вы установили необходимые библиотеки до работы config и make , например ::

yum install sqlite-devel
yum install zlib-devel
yum install openssl-devel

./configure --enable-shared
make install

Если вы забыли в первый раз, ничего страшного, попробуйте еще раз. Рекомендуется использовать - enable-shared , если вы собираетесь создавать другие программы, зависящие от Python позже (например, mod_wsgi, требуемый Django).

Если вы видите «python3: ошибка при загрузке общих библиотек: libpython3.5m.so.1.0: невозможно открыть общий объектный файл: нет такого файла или каталога» при запуске Python, одно из решений заключается в следующем:

cp /usr/local/lib/libpython3.5m.so.1.0 /usr/lib64/

В противном случае добавьте его в LD_LIBRARY_PATH.

0 голосов
/ 19 марта 2012

Попробуйте использовать --with-libs.См. Ниже.

Python-3.3.0a1/configure --help | grep lib 
.... 
--with-libs='lib1 ...'  link against additional libs
....

После настройки с помощью --with-libs = 'libz' я вижу "--with-system-zlib" в config.log.Это должно быть то, что вы ищете.

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