Mam dwie wersje Pythona na moim Linuksie:
$python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ /usr/local/bin/python2.7
Python 2.7.3 (default, Oct 8 2013, 15:53:09)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ which python
/usr/bin/python
$ ls -al /usr/bin/python
-rwxr-xr-x. 2 root root 4864 Jul 10 22:49 /usr/bin/python
Jak mogę ustawić wersję 2.7 jako domyślną, aby po wpisaniu python
znalazła się w wersji 2.7?
/usr/bin/env python
na 2,6 zamiast 2,3 oznaczała, że połowa poleceńrpm
i wszystkieurpmi
przestały działać)./usr/bin/python
było miękkim linkiem wskazującympython2
. Właśnie zmieniłem to napython3.6
Odpowiedzi:
Prawdopodobnie nie chcesz zmieniać domyślnego Pythona.
Twoja dystrybucja zainstalowała standardowy system Python w
/usr/bin
i może mieć skrypty zależne od tego, które są obecne i wybrane przez#! /usr/bin/env python
. Można zazwyczaj uciec z systemem skryptów w Pythonie 2.6 2.7, ale chcesz ryzykować?Co więcej, małpowanie z użyciem
/usr/bin
może zepsuć zdolność menedżera pakietów do zarządzania pakietami. A zmiana kolejności katalogów w twoimPATH
wpłynie na wiele innych rzeczy poza Pythonem. (W rzeczywistości bardziej powszechne jest posiadanie/usr/local/bin
przewagi/usr/bin
i może to być to, czego naprawdę chcesz - ale jeśli masz to na odwrót, prawdopodobnie jest ku temu dobry powód).Ale nie musisz zmieniać domyślnego Pythona, aby system działał w wersji 2.7 podczas wpisywania
python
.Najpierw możesz ustawić alias powłoki:
Typ, który w sposób szybki, lub umieścić go w
~/.bashrc
jeśli chcesz zmiana będzie trwała, a teraz, kiedy jesteś wpisaćpython
biegnie wybranym 2,7, ale kiedy jakiś program na swoich prób systemowych aby uruchomić skrypt/usr/bin/env python
działa standardowej 2.6.Alternatywnie, po prostu stwórz wirtualne środowisko z twojego 2.7 (lub oddzielne venv dla różnych projektów) i wykonaj swoją pracę wewnątrz venv.
źródło
yum
polecenie nie działa! Próbowałem utworzyć łącze symboliczne z powrotem, ale nie działa tosudo ln -sf /usr/bin/python2.6 /usr/bin/python
żadne obejście?/usr/bin/python
nie był to link symboliczny, był to skrypt opakowujący lub plik wykonywalny, a teraz nadpisałeś go i nie możesz go odzyskać. Jeślirpm
nadal działa, możesz ręcznie pobrać pakiet Pythona i zainstalować go bezyum
.python2.6
więc nadal tam jest.Dodaj
/usr/local/bin
do swojejPATH
zmiennej środowiskowej, wcześniej na liście niż/usr/bin
.Generalnie jest to zrobione w pliku rc twojej powłoki, np. Dla bash, umieścisz to w
.bashrc
:Spowoduje to, że twoja powłoka spojrzeć najpierw na
python
IN/usr/local/bin
, zanim przejdzie z jednego w/usr/bin
.(Oczywiście oznacza to, że musisz również mieć
/usr/local/bin/python
punktpython2.7
- jeśli jeszcze tego nie zrobił, musisz utworzyć dowiązanie symboliczne).źródło
Wprowadź polecenie
Tutaj możesz zobaczyć coś takiego
Twój domyślny python2.7 jest miękko powiązany z tekstem „python”
Usuń więc pythona z łączem miękkim
następnie ponów powyższe polecenie
widać, że link programowy został usunięty
Następnie utwórz nowe łącze programowe dla Pythona3.6
ln -s /usr/bin/python3.6 python
Następnie wypróbuj polecenie
python
w terminaluWpisz
help
,copyright
,credits
lublicense
, aby uzyskać więcej informacji.źródło
Sprawdź aktualną wersję Pythona przez:
następnie sprawdź, czy python jest dowiązaniem symbolicznym do którego pliku.
Wyjście Ex:
Sprawdź inne dostępne wersje Pythona:
Wyjście Ex:
Jeśli chcesz zmienić obecną wersję Pythona na wersję 3.6, edytuj plik ~ / .bashrc:
dodaj poniższą linię na końcu pliku i zapisz:
Aby zainstalować pip dla Pythona 3.6
W przypadku sukcesu sprawdź aktualną wersję pip:
Wyjście Ex:
źródło
Wszystkie systemy operacyjne są dostarczane z domyślną wersją Pythona i znajdują się w / usr / bin. Wszystkie skrypty dostarczane z systemem operacyjnym (np. Yum) wskazują, że ta wersja Pythona znajduje się w / usr / bin. Kiedy chcesz zainstalować nową wersję Pythona, nie chcesz przerywać istniejących skryptów, które mogą nie działać z nową wersją Pythona.
Właściwym sposobem na zrobienie tego jest zainstalowanie Pythona jako alternatywnej wersji.
Robiąc to, istniejące skrypty, takie jak yum, nadal działają z / usr / bin / python. a twoją domyślną wersją Pythona będzie ta zainstalowana w / usr / local / bin. tzn. kiedy wpiszesz python, otrzymasz 2.7.3
Dzieje się tak, ponieważ. Zmienna $ PATH ma / usr / local / bin przed usr / bin.
Jeśli python2.7 nadal nie działa jako domyślna wersja Pythona, musisz to zrobić
źródło
Domyślam się, że ręcznie zainstalowałeś wersję 2.7, podczas gdy 2.6 pochodzi z pakietu?
Prosta odpowiedź brzmi: odinstaluj pakiet Pythona.
Bardziej złożona to: nie instaluj ręcznie w / usr / local. Zbuduj pakiet w wersji 2.7, a następnie zaktualizuj.
Obsługa pakietów zależy od używanej dystrybucji.
źródło