2010-10-28 6 views
13

non posso sembrare installare zlib correttamente, ho installato Python dai sorgenti sul Ubuntu10.4installare Python-2.7 su Ubuntu 10.4

'######## modifica ####### ##############
bobince e Luper hanno aiutato.
Assicurarsi di installare questi pacchetti e quindi ricompilare Python:
sudo aptitude install zlib1g-dev libreadline6-dev libdb4.8-dev libncurses5-dev
'############### ##################

Dopo l'installazione, ho tentato di installare 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 

ho poi installato 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 

B rima di ricompilare Python:

ma setuptools ancora non installeranno:

$ 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 

Sono sconcertato.

ho controllato il mio permesso:

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 

ho notato che avevo aggiunto un passo in più, così ho refactoring che:

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 

Così ora, Python2.7 dovrebbe essere la versione di default, ma fallisce ancora.

$ 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 

Dove dovrebbe essere posizionato lo zlib per funzionare correttamente?

$ 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 

risposta

20

Non si desidera zlibc, è qualcos'altro completamente. Si desidera zlib1g (che verrà installato di sicuro) e, come menzionato da Luper, il pacchetto "sviluppo" che è zlib1g-dev.

Le distribuzioni Linux basate su Debian suddividono ciascuna libreria C in un pacchetto binario di runtime separato e un pacchetto di sviluppo che fornisce le intestazioni per l'inclusione in fase di compilazione. Se vuoi compilare qualcosa dal sorgente che si basa sulla libreria hai bisogno di entrambi i pacchetti. È un po 'fastidioso, ma probabilmente inevitabile dato il numero incredibilmente enorme di librerie che Ubuntu offre.

Assicuratevi di portare in altri -dev pacchetti si potrebbe desiderare di Python per essere in grado di utilizzare, anche, come libexpat1-dev, libdb4.8-dev, libncurses5-dev e libreadline6-dev (utilizzando l'interprete Python senza readline è doloroso!). Dovrai quindi ricompilare Python per trarne vantaggio.

(O se non si può essere disturbati, si potrebbe dimenticare setuptools, e semplicemente disimballare qualsiasi app finale è te stesso e rilasciarlo nei pacchetti del sito o dovunque. Devo dire che non sono un grande fan di uova.)

2

Assicurarsi che il pacchetto dev di zlib (e qualsiasi altra lib che un modulo standard è necessario dipende) è installato durante la configurazione e la compilazione dai sorgenti Python.

9

Tenete a mente che Ubuntu sta usando una directory chiamata /lib/x86_64-linux-gnu per x64 architetture. Se si utilizza l'architettura che è necessario creare un link simbolico:

$ sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/libz.so 

Inoltre, si dovrebbe fare stessa cosa per gli altri librerie condivise.

+0

E 'stato così, grazie mille! – Fabian

+0

è stato anche per me. – fastmultiplication

+0

Sì. Questo è tutto. Grazie! – ssapkota

1

Provare a installare dpkg-dev prima di configurare e compilare Python. Questo installerà l'eseguibile di dpkg-architecture sul sistema, che Python usa (vedi setup.py) per determinare dove si trova la libreria libz.so. Per maggiori dettagli vedi http://fnch.users.sourceforge.net/pythononubuntu1004.html

+0

Su Xubuntu 12.04.1, ho dovuto installare zlib1g-dev e dpkg-dev. –