Używam Ubuntu 16.04 LTS. Mam python3
zainstalowany. Zainstalowano dwie wersje python 3.4.3
i python 3.6
. Ilekroć używam python3
polecenia, python 3.4.3
domyślnie trwa on . Chcę używać python 3.6
z python3
.
python3 --version
przedstawia version 3.4.3
Instaluję, ansible
który obsługuje version > 3.5
. Tak więc, ilekroć wpisuję ansible w terminalu, generuje błąd z powodupython 3.4
sudo update-alternatives --config python3
mówisz?Odpowiedzi:
Z komentarza:
Wyświetli się błąd:
Musisz zaktualizować swoją
update-alternatives
, wtedy będziesz mógł ustawić domyślną wersję Pythona.Następnie uruchomić :
Ustaw python3.6 jako domyślny.
Lub użyj następującego polecenia, aby ustawić Python3.6 jako domyślny:
źródło
apt
. Po wybraniu innej wersji Pythona spróbuj uruchomićsudo apt update
. Jeśli to daje błąd jakModuleNotFoundError: No module named 'apt_pkg'
chcesz iść do/usr/lib/python3/dist-packages
i utworzyć dowiązania:ln -s apt_pkg.cpython-{34m,36m}-x86_64-linux-gnu.so
.$ sudo update-alternatives --set python /usr/bin/python3.6 update-alternatives: error: no alternatives for python
jakieś sugestie?python3
napython3.8
tę metodę złamało sięgnome-terminal
dla mnie.Możesz to osiągnąć, wykonując poniższe proste kroki -
python --version
sudo su
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
python --version
źródło
Utwórz dowiązanie symboliczne dla / usr / bin / python3. W moim LinuxMint:
źródło
użycie tych poleceń może pomóc:
ls /usr/bin/python*
alias python='/usr/bin/pythonxx'
. ~/.bashrc
python --version
źródło
Łatwą odpowiedzią byłoby dodanie aliasu dla python3.6.
Po prostu dodaj ten wiersz do pliku ~ / .bashrc:,
alias python3="python3.6"
a następnie zamknij terminal i otwórz nowy. Teraz po wpisaniupython3 xxx
zostanie przetłumaczone napython3.6 xxx
.To rozwiązanie rozwiązuje problem bez zbytniego dostrajania systemu.
EDYTOWAĆ :
Jak zauważył Mikael Kjær , jest to błędna konfiguracja ansible w twoim systemie.
Jak widać tutaj:
Jak widać tutaj o pliku konfiguracyjnym:
źródło
ansible_python_interpreter
zmienną tak, aby korzystała ze swojego python3.6. docs.ansible.com/ansible/latest/python_3_support.htmljeśli masz w systemie wiele wersji Pythona. Musisz tylko zaktualizować symboliczny link Pythona w środku
/usr/bin/
W powyższym przykładzie, jeśli zobaczysz wynik
python --version
, otrzymasz python2.7Teraz zaktualizuj dowiązanie symboliczne python, używając poniższego polecenia
źródło
update-alternatives to zmiana dowiązań systemowych na dowiązania symboliczne zdefiniowane przez użytkownika / administratora Jeśli masz w systemie wiele wersji Python3 i chcesz kontrolować, która wersja Python3 ma być wywoływana po wywołaniu Python3. Wykonaj następujące czynności
Uruchom poniżej polecenia, jeśli chcesz zmienić priorytet w przyszłości.
Wyjaśnienie:-
Możesz przejść do zmiany nazwa_konfiguracji na python4, ale następnie musisz wywołać alternatywy aktualizacji --config z python4, aby zmienić konfigurację.
Korzystając z tego podejścia, możesz osobno kontrolować systemową wersję python i wersję python3.
źródło
pierwsze sprawdzenie czy python3.6 folder
ls /usr/bin/python3.6
jeśli masz folder podobny do python3.6, to dobrze
następnie zaktualizuj alternatywy
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
teraz zaktualizuj nową konfigurację dla python3
sudo update-alternatives --config python3
sprawdź wersję Pythona
python3 --version
źródło
Możesz zmienić link simboliczny
ln -sf python3.6 python3
wewnątrz/usr/bin
. Dzięki temu, gdy zadzwoniszpython3
, wykona siępython3.6
źródło