2011-11-11 15 views
18

Ubuntu viene fornito con Python 2.7.2+ preinstallato. (Ho anche scaricato i pacchetti di python dev.) A causa di un altro problema che sto riscontrando (Spiegato in estrema profondità in How do I replace/update the version of the expat library used by Apache?), Graham Dumpleton mi ha detto che la mia distribuzione aveva costruito Python in modo esplicito in modo da utilizzare un'implementazione pyexpat esterna, causando così il mio problema. Ha anche detto che potrei creare Python dal codice sorgente per risolvere il problema. Come lo farei su Ubuntu? (Tenete a mente Sono nuovo di Linux.)Come potrei creare python dal codice sorgente su Ubuntu?

+0

Se non si ottiene una risposta qui, questa domanda può essere vista da più persone Ubuntu su askubuntu.com –

+1

Questo non è proprio specifico di Ubuntu quindi penso che vada bene qui. Secondo me, i vari siti di scambio di pacchi hanno una considerevole sovrapposizione. –

risposta

23
  1. Al prompt della shell (in un terminale), eseguire

    sudo apt-get install build-essential 
    

    Verrà recuperato tutti i pacchetti comuni necessari per costruire qualsiasi cosa (ad esempio il compilatore ecc.).

  2. Poi gestita

    sudo apt-get build-dep python2.7 
    

    Verrà recuperato tutte le librerie necessarie per costruire pitone.

  3. Quindi scaricare il codice sorgente per python e decomprimerlo in una directory.

  4. andare lì e correre

    ./configure --prefix=/path/where/you/want/python/installed 
    
  5. Poi make e poi make install per ottenerlo costruito e installato:

    make && make install 
    

Se colpite strappi sulla strada, chiedere di nuovo qui e cercherò di offrire qualche guida.

+1

Quando eseguivo 'sudo apt-get build-dep python2.7 'diceva" E: Devi inserire alcuni URI' sorgente 'nel tuo sources.list ". Qualche idea? (Inoltre, nota a margine minore: penso che volevi scrivere 'sudo apt-get install build-essential' senza -s alla fine di" essentials "nel primo comando.) –

+2

Hanno anche bisogno l'opzione --enable-shared quando si costruisce Python come vogliono utilizzarlo con mod_wsgi e Python non costruire librerie condivise di default, che non è l'ideale per il caricamento dinamico di sistemi embedded. –

+0

Cosa sono "loro"? A cosa ti riferisci? Inoltre, prima di ciò, come posso risolvere il messaggio di errore? Devo aggiungere qualcosa a sources.list? –

2

La soluzione superiore per la creazione di Python è pythonbrew, che automatizza il processo e consente anche di installare non solo diverse versioni, ma anche di selezionare facilmente tra di loro.

Nel 2016, pyenv e PyRun sono le soluzioni più valide.

+2

+1 per lo strumento. Quanto è maturo? Hai esperienza personale? –

+0

@NoufalIbrahim: Uso [ 'pythonz'] (https://github.com/saghul/pythonz) (una forcella semplificata di' pythonbrew'). Funziona come pubblicizzato: automatizza il processo di download delle fonti e la loro costruzione a mano. – jfs

+2

Questo strumento non è più mantenuto. –

4

Si può provare a utilizzare pyenv. Non l'ho ancora provato. Ma guardando le fonti, sembra molto maturo realizzare un'installazione di qualsiasi interprete CPython su qualsiasi sistema * ix.

6

Il modo migliore per costruire "caldo" molto recente python (da github) è il seguente:

sudo apt-get update \ 
    && apt-get install -y build-essential git libexpat1-dev libssl-dev zlib1g-dev \ 
    libncurses5-dev libbz2-dev liblzma-dev \ 
    libsqlite3-dev libffi-dev tcl-dev linux-headers-amd64 libgdbm-dev \ 
    libreadline-dev tk tk-dev 

    git clone https://github.com/python/cpython.git 
    cd cpython && ./configure --prefix=/usr \ 
    --enable-loadable-sqlite-extensions \ 
    --enable-shared \ 
    --with-lto \ 
    --enable-optimizations \ 
    --with-system-expat \ 
    --with-system-ffi \ 
    --enable-ipv6 --with-threads --with-pydebug --disable-rpath \ 
    && make \ 
    && make install 

costruisce il pitone molto recente dalle fonti su GitHub.

Con questo ho costruito Python 3.7.0a0 (heads/master:60a6632a3d, Aug 5 2017).

Problemi correlati