Aktualizacja Pythona w systemie Ubuntu


78

Chcę zaktualizować kompilację Pythona na moim Linux-ie, ale jedynym sposobem, w jaki wiem, jak to zrobić, jest odinstalowanie bieżącej wersji i zainstalowanie nowej. Mój system jest już aktualny (zaktualizowałem wczoraj). Chciałem wiedzieć, czy istnieje sposób na aktualizację określonego programu z wiersza poleceń, na przykład sudo apt-get update <program-name>. Wiem, że to polecenie nie istnieje, ale mam nadzieję, że coś równoważnego.


Jeśli twój system jest aktualny, to Python w twoim systemie (zgodnie z twoimi repozytoriami). Czy się mylę?
cyr

Odpowiedzi:


64

Jak już zauważyli inni, bare sudo apt-get install packagezainstaluje najnowszą dostępną wersję, w razie potrzeby zastępując starszą.

Jednak w przypadku niektórych programów (w tym Pythona) sytuacja wygląda nieco inaczej. Niektóre główne, bardzo i niekompatybilnie różne wersje otrzymują własne pakiety. Na przykład, Python 2.6 , Python 2.7 , Python 3.1 wszystkie działają w osobnych pakietach na Ubuntu.

Szczególnie ważny jest fakt, że jedną z zasad Ubuntu jest intensywne używanie Pythona do pisania oprogramowania dla użytkowników końcowych. W rzeczywistości dość duża część systemu jest napisana w języku Python. W tej chwili kod działa w Pythonie 2.6 - więc ta wersja jest domyślna podczas instalacji; a kod nie będzie łatwo działał, powiedzmy, w Pythonie 2.7 - ponieważ istnieją niezgodności. Aby przełączyć system na Python 2.7, należy wykonać pracę polegającą na aktualizacji i ponownym przetestowaniu wszystkich skryptów. Nie da się tego łatwo zrobić; oznacza to, że nie można po prostu „przełączyć” systemu na Python 2.7 i usunąć starszą wersję.

Ale. Jeśli nie zależy ci na wymyślnych narzędziach swojego systemu i potrzebujesz tylko nowego Pythona - nie widzę przeszkód. Idź i sudo apt-get install python3koduj dzielnie dla 3.x Pythona; pamiętaj tylko, aby uruchamiać skrypty python3i używać #!/usr/bin/env python3linii shebang.


6
Bardzo szczegółowe informacje na temat działań poza sceną.
Wydajność

16
sudo apt-get install python 3.3.3

dotyczy to Pythona (3.3.3) dla różnych wersji należy użyć odpowiedniego numeru wersji.


4
Myślę, że przestrzeń między Pythonem a wersją nie powinna istnieć. sudo apt-get install python3.6działało dla mnie, ale nie wpływa w żaden sposób na Python 3.5.
GUI Junkie

sudo apt-get install python 3.6.1 > Note, selecting 'libghc-unix-time-dev-0.3.6-1b8cf' for regex '3.6.1' ... Oddzielne argumenty mówią aptowi, aby zainstalował wiele pakietów
Clancy Hood

3
Po zainstalowaniu mój numer wersji python jest taki sam? Co może być przyczyną?
Ramesh Pareek

Użyłem tej metody, ale nie mogę znaleźć, gdzie została zainstalowana (tj. Jak otworzyć powłokę 3.7). @RameshPareek to może być również twój problem. nie wydaje się być w / usr / bin. python is already the newest version (2.7.12-1~16.04). python set to manually installed.jakieś pomysły?
Fan Bjorks numer jeden

10
sudo apt-get install python3.6

Spowoduje to zainstalowanie Pythona 3 w systemie Linux obok bocznego Pythona 2. Aby uzyskać dostęp do Pythona 3, wejdź po otwarciu terminala.

python3

2
To powiela inną odpowiedź i nie dodaje żadnej nowej treści. Nie publikuj odpowiedzi, chyba że masz coś nowego do dodania.
DavidPostill

3
przepraszam, chciałem tylko napisać polecenie, aby uzyskać nowe.
G-Ox7cd

6
Jeśli uruchomię, to dostanęE: Unable to locate package python3.6 E: Couldn't find any package by glob 'python3.6' E: Couldn't find any package by regex 'python3.6'
Kajsa

1
sudo add-apt-repository ppa: deadsnakes / ppa -y && sudo apt-get update
ski_squaw

E: Unable to locate package python3.6
Przerywa

4

Zbliżasz się do myślenia o poleceniu podobnym sudo apt-get update(które jest rzeczywistym poleceniem, ale nie robi tego, co chcesz).

Aby zaktualizować Python i wszystko, co zainstalowałeś, po prostu wykonaj polecenie:

sudo apt-get upgrade

Dzięki, ale już wiedziałem o poleceniu aktualizacji, dlatego opublikowałem fakt, że mój system jest już aktualny. Miałem nadzieję znaleźć polecenie, które może być ukierunkowane na określone aplikacje.
wydajność

apt nie zaktualizowałby niczego na bieżąco, więc nie miałoby to znaczenia; p
Journeyman Geek

OP chce konkretnie zaktualizować Pythona . Mówienie im, aby zaktualizowali wszystkie pakiety, które mają, jest leniwą i złą radą.
Przemek D



2

pyenv może być dla Ciebie dobrą opcją: https://github.com/yyuu/pyenv


W odniesieniu do odpowiedzi @ ulidtko , możliwą alternatywą dla całkowitego zastąpienia systemowego pytona może być użycie izolowanego środowiska z żądaną wersją Pythona. Jest to podobne do „środowiska wirtualnego”, ale dotyczy samego pythona. Użyłem tego w przeszłości dla starszych projektów, które działają na Pythonie 2.6, a także podczas aktualizacji ze starszej wersji Pythona do Pythona3.


Nie znam tego obszaru, ale czy mógłbyś wyjaśnić, w jaki sposób rozwiązuje to pytanie i rozwiązuje problem?
Ben N

1
W odniesieniu do odpowiedzi @ ulidtko ( superuser.com/a/241903/152143 ), możliwą alternatywą dla całkowitego zastąpienia systemowego pytona może być użycie izolowanego środowiska z żądaną wersją Pythona. Jest to podobne do „środowiska wirtualnego”, ale dotyczy samego pythona. Użyłem tego w przeszłości dla starszych projektów, które działają na Pythonie 2.6, a także podczas aktualizacji ze starszej wersji Pythona do Pythona3.
nicefinly

1
apt-get install python

Uważam, że to powinno zadziałać. Musisz oczywiście zmienić „python”, aby oczywiście pasował do odpowiedniej nazwy pakietu w repozytorium.


1

Jak wszyscy wiemy, że Python jest dostarczany z wersją 3.5. Tak więc bardzo łatwo jest zaktualizować Python 2.7 (który jest domyślnie obecny w Ubuntu 16.04) do Python 3.5.

Wykonaj następujące kroki:

  1. Otwórz terminal.
  2. Zostań użytkownikiem root za pomocą polecenia sudo.
  3. Użyj poniższego kodu, aby zaktualizować Python 2.7 do 3.5

    sudo apt-get install python3.5

  4. Zostaniesz poproszony o zgodę, a następnie Daj opcję Y.

  5. Poczekaj na zakończenie procesu.
  6. wyczyść ekran za pomocą polecenia clear
  7. Sprawdź wersję Pythona za pomocą poniższego polecenia.

    Python -version


1
W przyszłości używaj właściwego formatowania i trzymaj się z dala od stwierdzeń typu „Mam nadzieję, że ci to pomoże”. to tylko hałas. Odpowiadając na pytanie, zakłada się, że próbujesz odpowiedzieć na pytanie za pomocą czegoś, co jest pomocne. Powinieneś przejrzeć swoją odpowiedź i naprawić drobne błędy gramatyczne, których nie naprawiłem, i dostarczyć zrzuty ekranu z procesu. Tym razem poprawiłem formatowanie, nie będę tego więcej robić, mocno wierzę, że autorzy powinni się przekonać do poprawiania własnych odpowiedzi i pytań.
Ramhound,

I to nie jest takie proste, to nie aktualizuje właściwie dowiązań symbolicznych, więc kończy się to 3.4 i 3.5 obok siebie. Python2 i tak jest generalnie obok Python3, nie aktualizujemy Python2 do Python3, migrujemy naszą pracę.
mckenzm

0

W jednym przypadku, w którym korzystasz z wersji LTS, twój python może być opóźniony przez mniejszą wersję, powiedzmy 2.7.5 zamiast 2.7.10.

Jedną z możliwości może być aktualizacja systemu :

  • ustawiony prompt=normalw/etc/update-manager/release-upgrades
  • zaktualizuj system
    • w wierszu polecenia możesz wpisać sudo do-release-upgradepolecenie, aby menedżer aktualizacji wykonał zadanie aktualizacji do najnowszej (= nie LTS) wersji.
    • rozwiązanie GUI korzysta z Menedżera aktualizacji

Jak zawsze podczas aktualizacji , zapoznaj się z uwagami do wydania , ponieważ aktualizacja może w niektórych przypadkach uszkodzić twój system, patrz komentarz @ Gino .


Koleś, próbowałem twojej zmiany i złamała mój system Ubuntu 14.04! Zasadniczo próbował zaktualizować z 14.04 do Ubuntu 15 i nie był w stanie tego zrobić pomyślnie, pozostawiając mój system w połowie stanu, w którym logowanie graficzne już nie działało - np. Zalogowałbym się za pomocą logowania graficznego i kopnął wróciłem do tego samego graficznego loginu. Właśnie spędziłem ostatnią godzinę + ponownie instalując Ubuntu 14.04 na moim komputerze, aby naprawić zerwanie rzekomego rozwiązania .
Gino,

@Gino: Dziękujemy za opinię. Czy masz już askubuntu.com/questions/612973/... , askubuntu.com/questions/223501/... i informacje o wersji? Wystąpił problem ze „sterownikiem fglrx AMD”. Czy potrzebujesz innej pomocy?
serv-inc,

Myślę, że twoja sugestia, aby obejść normalne kontrole bezpieczeństwa, a tym samym umożliwić aktualizację do wersji innej niż LTS, jest pełna niebezpieczeństw. Do dziś nie wiem, dlaczego aktualizacja się nie udała, ponieważ nie wyświetlała żadnych komunikatów o błędach, które można zdiagnozować. Zamiast tego skończyłem z systemem, który nie był już użyteczny. Jeśli dobrze pamiętam, w końcu uruchomiłem ponownie instalację Ubuntu z pewnymi ustawieniami, które były w stanie przywrócić większość mojego systemu. I na marginesie, jestem profesjonalnym programistą, więc ogólnie wiem, jak sobie radzić z systemem Linux.
Gino

@Gino: Wydaje się, że jest to standardowa procedura przejścia z LTS na inne niż LTS. To „[zmienia] poziom świadomości nowych wydań. Można ustawić to na „obsługiwane” (zwykłe) wersje, „tylko długoterminowe” (LTS), a nawet „nic” (bez większych aktualizacji). ”„ Cytat patrz askubuntu.com/questions/240160/… . Używa on menedżera aktualizacji systemu. Niestety, w twoim przypadku (domyślna) aktualizacja nie działała, co może być spowodowane błędnym sterownikiem grafiki (patrz linki powyżej)
serv-inc
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.