Czy w przyszłości python2.7 będzie dostępny w wersji 10.04?

27

Ponieważ Ubuntu 10.04 jest wersją LTS, czy będzie obsługiwał Python 2.7 jako domyślną wersję opiekuna pakietu, czy przynajmniej będzie miał pakiet Python2.7 w przyszłości?

Ponieważ będzie to ostatnie główne wydanie Pythona 2.x i ma pozostać na miejscu przez długi czas, postanowiłem go użyć. Kompilowałem go ze źródła (oczywiście po zbudowaniu deps), ale od czasu do czasu znajduję małe problemy.

Czy mogę bezpiecznie zdefiniować mój skompilowany Python jako domyślny, ponieważ niektóre aplikacje dystrybucyjne działają na Pythonie.

Crodjer
źródło

Odpowiedzi:

16

Nie, zdefiniowanie 2.7 jako domyślnego interpretera języka Python w Lucid nie jest bezpieczne . I nie sądzę, że będzie w przyszłości.

  • W jednym wydaniu nie ma większych aktualizacji wersji żadnego oprogramowania.

    Python2.7 nie zastąpi 2.6 jako domyślnego interpretera. Ten rodzaj aktualizacji jest wykonywany tylko pomiędzy wersjami, w ramach jednej - zwłaszcza LTS - istnieją tylko tak zwane aktualizacje stabilnego wydania, tj. Poprawki błędów i aktualizacje związane z bezpieczeństwem.

Jednak korzystanie z python2.7 jest całkowicie bezpieczne, definiując interpreter jako #!/usr/bin/python2.7i umożliwiając użytkownikom zainstalowanie go przy użyciu make altinstallźródła python, wraz z python2.6

Stefano Palazzo
źródło
41

Miał ten sam problem z VPS, którego nie można uaktualnić do Maverick (nawet nowe obrazy LTS nie zawsze są dostępne na czas). Odpowiedź Mariusza pomogła mi zacząć, ale należy ją rozwinąć:

Dodaj PPA do swoich źródeł

Jeśli jesteś w mojej sytuacji, prosta rada biegania add-apt-repositorynie zadziała dla ciebie. Zróbmy to w staromodny sposób:

  1. Otwórz plik /etc/apt/sources.list(potrzebujesz uprawnień roota; jeśli korzystasz z powłoki, prawdopodobnie oznacza to uruchomienie sudo vim /etc/apt/sources.list).

  2. Przejdź na sam dół pliku (jeśli używasz vim, przełącz się do trybu wstawiania, naciskając i) i dodaj następujące wiersze:

    deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    
  3. Zapisz i wyjdź (in vim: type :wq) i wróć do powłoki.

  4. Wpisz następujące dane (właściwy klucz znajdziesz w PPA ; jest to część po ukośniku w „szczegółach technicznych” - upewnij się, że masz właściwy):

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
  5. Teraz wprowadź następujące informacje, aby zaktualizować listę źródeł:

    sudo apt-get update

Zainstaluj i skonfiguruj Python 2.7

  1. Otwórz powłokę na serwerze i wprowadź następujące dane:

    sudo apt-get install python2.7 python2.7-dev
  2. Aby rozpocząć easy_installpracę, distributepobierz skrypt Bootscrap:

    curl -O http://python-distribute.org/distribute_setup.py
    python2.7 distribute_setup.py
    
  3. Wreszcie, chcesz pipi virtualenvpracować, jeśli planujesz zrobić coś poważnego:

    easy_install-2.7 pip
    pip-2.7 install virtualenv
    

Konfigurowanie virtualenv

  1. Utwórz folder dla nowego środowiska i otwórz go:

    mkdir my_env && cd my_env
  2. Utwórz samo środowisko wirtualne (kropka wskazuje, że bieżący katalog to lokalizacja środowiska, zastąp go poprawną ścieżką, jeśli pominąłeś poprzedni krok):

    virtualenv --no-site-packages --python=python2.7 .
  3. Aktywuj środowisko. Zauważysz zmiany powłoki w celu odzwierciedlenia aktywnego środowiska:

    source bin/activate
  4. Cokolwiek zrobisz teraz w tej powłoce, użyje skryptów w binfolderze środowiska wirtualnego i pakietów tego środowiska Python. Pamiętaj, że ta opcja --no-site-packagesoznacza, że ​​zaczynasz od minimalnego zestawu pakietów (w tym pipjednak), więc musisz zainstalować wszystkie potrzebne pakiety.

  5. Po zakończeniu dezaktywuj środowisko (jest to polecenie rozpoznawane przez aktywne środowisko):

    deactivate

Możesz także zainstalować pakiety w środowisku wirtualnym, przekazując -Eopcję pip(np. pip install some-package -E /path/to/virtual/environmentZainstalować some-packagew środowisku wirtualnym na podanej ścieżce). Pamiętaj, że masz pipzainstalowanych kilka różnych wersji odpowiadających różnym wersjom Pythona.

Dobrym pomysłem jest użycie, pip-2.7jeśli chcesz instalować pakiety dla Pythona 2.7 podczas pracy poza środowiskiem wirtualnym ( --python=python2.7przekazana przez nas opcja virtualenvoznacza, że ​​środowisko wirtualne będzie korzystać z dostarczonych przez siebie wersji Python 2.7, więc nie musisz martw się o to).

Alan Plum
źródło
1
W moim przypadku zainstalowałem już pip dla 2.6 i musiałem easy_install-2.7 -U pipwymusić instalację wersji 2.7. Ale dzięki, to świetna pomoc!
Gabe Moothart
2
W kroku 2 w sekcji „Zainstaluj i skonfiguruj Python 2.7” musiałem to zrobić wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python2.7. A potem, aby uzyskać pip, sudo python2.7 -m easy_install pipa następnie sudo python2.7 -m easy_install --upgrade pip. Opcja --no-check-certificate była konieczna, aby obejść skargę wget dotyczącą certyfikatu SSL. (Patrz pypi.python.org/pypi/setuptools#unix-wget )
zlovelady
10

Istnieje PPA z Pythonem 2.7 dla Ubuntu 10.04. Może to być bezpieczniejsze / wygodniejsze niż budowanie ze źródła.

Marius Gedminas
źródło
2

Rozwiązało to wszelkiego rodzaju problemy, które miałem /programming/7561221/undefined-symbol-pyobject-nextnotimplemented-error-when-loading-psycopg2-modu .

Teraz libpython2.7.so.1.0link do mojego Python2.7 itp. Wydaje się być szczęśliwszy.

Ostatnim elementem, który musiałem to rozgryźć, była mod_wsgiinstalacja. Jeśli po prostu wydasz:

$ apt-get install libapache2-mod-wsgi

To zostanie skompilowane dla Python2.6 :(

$ ldd /usr/lib/apache2/modules/mod_wsgi.so

libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00178000)

Postępowałem więc zgodnie z instrukcjami udzielonymi przez Gork-Zope tutaj .

Mam wreszcie działający serwer. Dziękuję Ci.

Naoko
źródło
1

nie sądzę, ponieważ będzie musiała zmienić wiele programów i bibliotek powiązanych z wersją 10.04. W rzeczywistości wiele prac w Ubuntu jest wykonywanych przy użyciu określonej wersji Pythona. Zmiana na Python zmieniłaby wiele plików systemowych.

W wersji 10.10 jest on dostępny z synaptic / aptitude po prostu przez zainstalowanie Python2.7 (możesz także zainstalować 3 i 3.1), ale w przypadku wersji 10.04 nie ma pracy, aby zrobić to w wersji 10.04.

10.10 ma domyślnie Python 2.6. Przepraszam, jeśli odpowiedź nie była pozytywna, ale po prostu chciałem dać ci pojęcie o zmianach.

EDYCJA - Domyślnie zmieniono Python 2.7 na Python 2.6, ponieważ sprawdzono go dwukrotnie w komentarzach poniżej. Dziękuję Ci.

Luis Alvarado
źródło
Właśnie wypisałem 10.10 w wirtualnym pudełku, domyślnie ma on Python 2.6.6, chociaż dla indywidualnego programu dostępne są pakiety 2.7. Myślę, że to 11.04, który ma go jako domyślny. Generalnie ciągle aktualizuję i zmieniam dystrybucje, ale rozważałem pozostanie przy 10.04, ze względu na jego długoterminowe wsparcie i moje dostosowania.
crodjer
tak, 11.04 ma domyślnie 2,7 od kilku dni
Stefano Palazzo