2011-11-11 16 views
18

Ubuntu jest fabrycznie zainstalowany w Pythonie 2.7.2+. (Pobiegłem również pakiety Pythona). Z powodu innego problemu, który mam (Wyjaśniono w ekstremalnej głębokości w How do I replace/update the version of the expat library used by Apache?), Graham Dumpleton powiedział mi, że moja dystrybucja wyraźnie zbudowała Pythona w taki sposób, aby użyć zewnętrznej implementacji pyexpat, więc powodując kwestia. Powiedział także, że mogę samodzielnie zbudować Pythona z kodu źródłowego, aby rozwiązać problem. Jak mam to zrobić w systemie Ubuntu? (Należy pamiętać, że jestem nowy w Linuksie).Jak zbudować Pythona samodzielnie z kodu źródłowego na Ubuntu?

+0

Jeśli nie otrzymasz odpowiedzi tutaj, to pytanie może zobaczyć więcej osób z Ubuntu na stronie askubuntu.com –

+1

Nie jest to tak naprawdę specyficzne dla ubuntu, więc myślę, że tutaj jest wszystko w porządku. Różne strony wymiany stosów w mojej opinii pokrywają się w znacznym stopniu. –

Odpowiedz

23
  1. W wierszu powłoki (w terminalu), uruchom

    sudo apt-get install build-essential 
    

    To będzie pobrać wszystkie wspólne pakiety potrzebne do zbudowania czegokolwiek (np. kompilator itp.).

  2. Następnie uruchom

    sudo apt-get build-dep python2.7 
    

    ten pobierze wszystkie biblioteki musisz zbudować Pythona.

  3. Następnie pobierz kod źródłowy dla Pythona i rozpakuj go do katalogu.

  4. tam i uruchomić

    ./configure --prefix=/path/where/you/want/python/installed 
    
  5. Następnie make a następnie make install dostać to zbudowany i zainstalowany:

    make && make install 
    

Jeśli trafisz zaczepów na drodze, zapytaj tu i postaram się udzielić wskazówek.

+1

Po uruchomieniu 'sudo apt-get build-dep python2.7' napisano" E: Musisz umieścić "źródłowe" identyfikatory URI w swoim sources.list ". Dowolny pomysł? (Poza tym: drugorzędna uwaga: myślę, że napisałeś "sudo apt-get install-essential" bez "-s" na końcu "essentials" w pierwszym poleceniu.) –

+2

Potrzebują również opcji -enable-shared podczas budowania Pythona, ponieważ chcą używać go z mod_wsgi, a Python nie buduje domyślnie bibliotek współdzielonych, co nie jest idealne do dynamicznego ładowania systemów wbudowanych. –

+0

Co to są "oni"? Co pan myśli? Poza tym, jak mogę rozwiązać ten komunikat o błędzie? Czy muszę dodać coś do sources.list? –

2

Doskonałe rozwiązanie do samodzielnego budowania Pythona to pythonbrew, który automatyzuje proces, a także pozwala nie tylko instalować kilka różnych wersji, ale także łatwo wybierać między nimi.

W 2016 r. Pyenv i PyRun są najbardziej opłacalnymi rozwiązaniami.

+2

+1 dla narzędzia. Jak to jest dojrzałe? Czy masz osobiste doświadczenie? –

+0

@NoufalIbrahim: Używam ['pythonz'] (https://github.com/saghul/pythonz) (uproszczony fork' pythonbrew'). Działa jak w reklamie: automatyzuje proces pobierania źródeł i budowania ich ręcznie. – jfs

+2

To narzędzie nie jest już obsługiwane. –

4

Możesz spróbować użyć opcji pyenv. Jeszcze tego nie próbowałem. Ale patrząc na źródła, wydaje się bardzo dojrzałe, aby przeprowadzić instalację dowolnego interpretera CPython w dowolnym systemie * ix.

6

Najlepszym sposobem, aby zbudować „na gorąco” bardzo niedawną python (od github) przedstawia się następująco:

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 

Buduje bardzo niedawnej pytona ze źródeł na github.

Dzięki temu zbudowałem Python 3.7.0a0 (heads/master:60a6632a3d, Aug 5 2017).

Powiązane problemy