Установка Python-2.7 на Ubuntu 10.4
Я не могу правильно установить zlib, я установил Python из источника на Ubuntu10.4
'######## edit #####################
bobince и Luper помогли.
Убедитесь, что вы устанавливаете эти пакеты, а затем перекомпилируете Python:
sudo aptitude install zlib1g-dev libreadline6-dev libdb4.8-dev libncurses5-dev
"#################################
После установки я попытался установить setuptools.py
$ sh setuptools-0.6c11-py2.7.egg
Traceback (most recent call last):
File "<string>", line 1, in <module>
zipimport.ZipImportError: can't decompress data; zlib not available
Затем я установил zlib:
$ sudo aptitude install zlibc
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
The following NEW packages will be installed:
zlibc
0 packages upgraded, 1 newly installed, 0 to remove and 44 not upgraded.
Need to get 74.6kB of archives. After unpacking 299kB will be used.
Writing extended state information... Done
Get:1 http://archive.ubuntu.com/ubuntu/ lucid/universe zlibc 0.9k-4.1 [74.6kB]
Fetched 74.6kB in 0s (108kB/s)
Selecting previously deselected package zlibc.
(Reading database ... 19824 files and directories currently installed.)
Unpacking zlibc (from .../zlibc_0.9k-4.1_amd64.deb) ...
Processing triggers for man-db ...
Setting up zlibc (0.9k-4.1) ...
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Перед перекомпиляцией Python:
но setuptools по-прежнему не будут установлены:
$ sh setuptools-0.6c11-py2.7.egg
Traceback (most recent call last):
File "<string>", line 1, in <module>
zipimport.ZipImportError: can't decompress data; zlib not available
Я озадачен.
Я проверил свои права:
lrwxrwxrwx 1 root 18 Oct 28 18:19 /usr/bin/python -> /usr/bin/python2.7
lrwxrwxrwx 1 root 24 Oct 28 18:26 /usr/bin/python2.7 -> /usr/local/bin/python2.7
lrwxrwxrwx 1 root 9 Oct 28 15:13 /usr/bin/python2 -> python2.6
-rwxr-xr-x 1 root 2613296 Apr 16 2010 /usr/bin/python2.6
Я заметил, что добавил дополнительный шаг, поэтому я его реорганизовал:
llrwxrwxrwx 1 root 24 Oct 28 18:33 /usr/bin/python -> /usr/local/bin/python2.7
lrwxrwxrwx 1 root 9 Oct 28 15:13 /usr/bin/python2 -> python2.6
-rwxr-xr-x 1 root 2613296 Apr 16 2010 /usr/bin/python2.6
Итак, теперь Python2.7 должен быть версией по умолчанию, но он все равно не работает.
$ sh setuptools-0.6c11-py2.7.egg --prefix=/usr/local/bin/python2.7
Traceback (most recent call last):
File "<string>", line 1, in <module>
zipimport.ZipImportError: can't decompress data; zlib not available
Где должно быть расположено zlib для правильной работы?
$ find / -name zlib 2>/dev/null
/home/username/sources/Python-2.7/Modules/zlib
/home/username/sources/Python-2.7/Demo/zlib
[email protected] Thu Oct 28 18:43:17 ~/sources
$ find / -name zlibc 2>/dev/null
/usr/share/lintian/overrides/zlibc
/usr/share/doc/zlibc
Ответы
Ответ 1
Вы не хотите zlibc
, это что-то еще полностью. Вы хотите zlib1g
(который, безусловно, будет установлен уже), и, как сказал Люпер, "пакет разработки zlib1g-dev
.
Debian-дистрибутивы Linux разбивают каждую библиотеку C на отдельный бинарный пакет времени выполнения и пакет разработки, который предоставляет заголовки для включения во время компиляции. Если вы хотите скомпилировать что-то из источника, который полагается на библиотеку, вам нужны оба пакета. Это немного раздражает, но, вероятно, неизбежно, учитывая невероятно огромное количество библиотек, подобных Ubuntu.
Убедитесь, что вы добавили другие пакеты -dev
, которые вы, возможно, захотите использовать Python, например, libexpat1-dev
, libdb4.8-dev
, libncurses5-dev
и libreadline6-dev
(с использованием интерпретатора Python без readline больно!). Затем вам придется перекомпилировать Python, чтобы воспользоваться ими.
(Или, если вас не беспокоит, вы можете забыть setuptools и просто распаковать любое конечное приложение, которое вы сами, и поместить его в пакеты сайтов или где угодно. Скажите, что я не большой поклонник яиц.)
Ответ 2
Имейте в виду, что Ubuntu использует каталог с именем /lib/x86_64-linux-gnu для архитектур x64. Если вы используете эту архитектуру, вам нужно создать символическую ссылку:
$ sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/libz.so
Кроме того, вы должны сделать то же самое для других разделяемых библиотек.
Ответ 3
Убедитесь, что пакет dev zlib (и любая другая библиотека, от которой зависит стандартный модуль) устанавливается при настройке и компиляции Python из источника.
Ответ 4
Попробуйте установить dpkg-dev перед настройкой и компиляцией Python. Это установит исполняемый файл dpkg-архитектуры в системе, который использует Python (см. Setup.py), чтобы определить, где находится библиотека libz.so. Подробнее см. http://fnch.users.sourceforge.net/pythononubuntu1004.html