4

У меня была адская установка времени для установки lxml для Python 2.7 на CentOS 5.6. Для некоторого фона Python 2.7 является альтернативной установкой Python на CentOS 5.6, которая поставляется с установленным Python 2.4.

это был тупик от источника согласно его наставлениям

./configure
make
make altinstall

Однако после примерно 20 часов попыток мне удалось найти работоспособное решение и установить lxml .

Пока я не заметил следующую ошибку в верхней части интерпретатора:

python2.7: /usr/lib64/libz.so.1: no version information available (required by python2.7)
Python 2.7.2 (default, Jun 30 2011, 18:55:26) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print 'Sheeeeut!'

Эта ошибка выводится каждый раз, когда я запускаю скрипт.

Например:

$ ./test.py
/usr/local/bin/python2.7: /usr/lib64/libz.so.1: no version information available (required by /usr/local/bin/python2.7)

Скрипт работает без нареканий, но эта ошибка надоедливая. После некоторого копания я, кажется, полагаю, что у меня установлена неправильная версия libz , что это либо старая версия, либо созданная для другой платформы.

Я не совсем уверен, как, я только установил libz через yum , насколько я знаю. Хотя я не могу вспомнить каждую мелочь, которую я пробовал за двадцать часов попыток.

Вы также можете быть заинтересованы в том, как выглядит моя папка lib64 , вот некоторая информация

$ ls -ltrh libz*
-rwxr-xr-x 1 root root  84K Jan  9  2007 libz.so.1.2.3
-rwxr-xr-x 1 root root 107K Jan  9  2007 libz.a
-rwxr-xr-x 1 root root 154K Feb 22 23:30 libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Apr 20 20:46 libz.so.1 -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jun 30 18:43 libzdb.so.7 -> libzdb.so.7.0.2
lrwxrwxrwx 1 root root   13 Jul  1 11:35 libz.so -> libz.so.1.2.3
lrwxrwxrwx 1 root root   15 Jul  1 11:35 libzdb.so -> libzdb.so.7.0.2

Обратите внимание: предметы, которые говорят 1 июля или 30 июня, от меня. Первоначально я переместил эти файлы в папку резервных копий, так как они казались дублирующимися, и у меня была дата после / во время моих проблем, о которых я упоминал ранее, что я имел с lxml

Одно из намерений - полностью удалить Python 2.7 и переустановить. Я думаю, что его установка в /usr/local/ была плохим выбором по умолчанию. Тем не менее, без наличия опции make uninstall это кажется трудоемкой задачей для решения, и я не совсем уверен, что решит мою проблему.

3 ответа3

2

У меня есть несколько версий в моей системе и столкнулся с той же проблемой. В /usr/bin я создал файл python-2.4.3 и указал его на python, который исправил мою проблему. python-2.4.3 был удален как-то после компиляции других моих версий, которые мы используем. Я считаю, что проблема заключается в приложении yum, которое встроено в python 2.4.3.

2

From Что означает ошибка «нет информации о версии» в динамическом компоновщике Linux?, относящиеся к libpam:

"Информация о версии недоступна" означает, что номер версии библиотеки ниже для общего объекта. Например, если ваш номер major.minor.patch равен 7.15.5 на компьютере, на котором вы создаете двоичный файл, а номер major.minor.patch 7.12.1 на установочном компьютере, ld выведет предупреждение.

Вы можете исправить это, скомпилировав библиотеку (заголовки и общие объекты), которая соответствует версии общего объекта, поставляемой с вашей целевой ОС. Например, если вы собираетесь установить RedHat 3.4.6-9, вы не хотите компилировать в Debian 4.1.1-21. Это одна из причин того, что большинство дистрибутивов поставляются для определенных дистрибутивов Linux.

В противном случае вы можете статически связать. Однако вы не хотите делать это с чем-то вроде PAM, поэтому вы действительно хотите установить среду разработки, соответствующую производственной среде вашего клиента (или, по крайней мере, установить и связать с правильными версиями библиотеки).

0
yum install python-lxml

Должен сделать трюк

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .