Jak korzystać z najnowszej wersji Python 2.7.x „Właściwy sposób” na Ubuntu 12.04 LTS?

28

Mój projekt musi być aktualny w wersjach Pythona, ale 12.04LTS jest obecnie zablokowany w wersji 2.7.3, mimo że wersja 2.7.5 jest już dostępna. Czy istnieje sposób, aby utrzymać większą aktualność bez ręcznej kompilacji? Musimy pozostać przy instalacji opartej na pakietach dla Pythona. Jaki jest „właściwy” sposób, aby sobie z tym poradzić?

Dzięki!

Wola
źródło

Odpowiedzi:

14

EDYCJA: * Jak zauważył @Anthon w komentarzach, ten PPA nie obejmuje Python 2.7 dla Ubuntu 12.04 (Precise). Zobacz odpowiedź funky-future poniżej , która, jak sądzę, nie istniała, kiedy pierwotnie odpowiedziałem.

Preferowanym sposobem „Ubuntu” do radzenia sobie z pakietami domyślnie nieuwzględnionymi w ich wszechświecie jest użycie PPA (repozytorium strony trzeciej) zamiast kompilacji ręcznej. W ten sposób zachowujesz zalety zarządzania pakietami, aktualizacji i rozwiązywania zależności.

Jednak repozytoria stron trzecich NIE są oficjalnie obsługiwane, jeśli jest to częścią twojego wymagania.

DeadSnakes (pobierz) PPA utrzymuje wersje Python nieuwzględnione w zarządzaniu pakietami systemowymi.

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python2.7

Możesz przeczytać więcej o tym PPA tutaj .

Jednak w twoim przypadku nie obejmuje to Pythona 2.7, ponieważ DeadSnakes zapewnia tylko główne wersje, które nie zostały uwzględnione, a nie wydania punktowe. Ponieważ Ubuntu już zawiera pakiety 2.7 dla Ubuntu 12.04, DeadSnakes tego nie zapewni.

Może być wskazane, aby w tym przypadku nie używać natywnego opakowania z Ubuntu. Zobacz ten fragment DeadSnakes;

Using third-party modules packaged for Debian or Ubuntu with the Python
interpreters from this repository is a bit of a mixed bag. For Python 2, Python
modules from the official repositories will not work, as a consequence of how
Python packaging works in Debian. For Python 3 on the other hand, all
pure-Python module packages at least should be available; compiled extension
modules will not work however.

In general, you're better off installing Python modules using the common Python
packaging tools rather than the system package manager. For an introduction into
the Python packaging ecosystem and its tools, refer to;
    http://guide.python-distribute.org/

A few of these tools might also be provided in this repository as a convenience.

Jeśli jesteś absolutnie zobowiązany do korzystania z zarządzania pakietami systemów operacyjnych i nie możesz przejść do innej wersji Ubuntu z pakietem dostarczonym przez DeadSnakes lub natywnie, to masz tylko dwie opcje, tak jak ja to widzę.

  1. Możesz poprosić o backport Python 2.7.5 do Ubuntu 12.04.
  2. Możesz stworzyć swój własny PPA z wymaganą wersją Pythona.

uwaga dodatkowa : AskUbuntu jest lepszym StackExchange do publikowania takich rzeczy, niż SuperUser ogólnie.

Krondor
źródło
Perfekcyjnie, dzięki! Czy z twojego doświadczenia wynika, że ​​DeadSnakes jest dobrze utrzymany?
Czy
2
Tak, wydaje się być popularny i dobrze utrzymany. Nie miałbym z tym najmniejszej rezerwy.
krondor
1
Ma tylko 2.7.4 dla 10.04, a nie dla 12.04
Anthon
1
@Anthon masz rację, nie zauważyłem tego. DeadSnakes nie zastąpi głównej wersji, więc ponieważ Ubuntu już zawiera pakiet Python 2.7, Deadsnakes nie będzie oferował wersji punktowych dla tej serii. Zapewniają raczej 3.3 dla Precise. W tym przypadku nie pomoże to PO.
krondor
14.04 musiałem użyć ppa:fkrull/deadsnakes-python2.7(zanotować przyrostek)
Craig Younkins
37

Felix Krull utrzymał również (podobnie jak obecnie nieobsługiwany) umowę PPA z najnowszą wersją Python 2.7 dla Ubuntu Precise, Trusty i Utopic. Można użyć tego samego procesu jak Krondor opisuje, ale używać zamiast lub dodatkowo to PPA: ppa:fkrull/deadsnakes-python2.7.

sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7
sudo apt-get update
sudo apt-get install python2.7
funky-future
źródło
To powinna być zaakceptowana odpowiedź.
cr8ivecodesmith
1
Ma teraz ostrzeżenie „przerwać”, ale działa dobrze na komputerach, na których nadal działają starsze wersje Ubuntu. PPA zapewnia wersji 2.7.12-1~precise1, 2.7.12-1~trusty1i 2.7.10-0+utopic1(o 12.04, 14.04 i 14.10).
mivk 12.11.16
5
Zauważ tylko, że frull / deadsnakes-python2.7 ppa jest wycofane. W najnowszych wydaniach Python 2.7 (takich jak 2.7.13) spróbuj użyć jonathonf / python-2.7 ppa.
Sokrates
ostrzeżenie - to spowodowało problemy podczas aktualizacji dystrybucji (12 -> 14) .. Zostałem z naprawdę martwym pytonem .. Pamiętaj o cofnięciu tego ppa przed aktualizacją ..
dermen 24.04.17
tak jest w przypadku każdej aktualizacji dystrybucji i ppas.
funky-future