Неможливо встановити версію python за замовчуванням на python3 в ubuntu


147

Я намагаюся встановити версію пітона по замовчуванням python3в Ubuntu 16.04. За замовчуванням це python2(2.7). Я дотримувався наступних кроків:

update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3

але я отримую таку помилку для другого твердження,

rejeesh@rejeesh-Vostro-1015:~$ update-alternatives --install /usr/bin/python python /usr/bin/python3
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.   

Я новачок у Ubuntu і Idon't знаю, що я роблю не так.


3
Як зазначено в попередженні, вам не вистачає пріоритету.
greedy52

6
Слідкуйте за тим, щоб не видаляти Python 2.7, оскільки це покалічить багато можливостей вашої ОС (з досвіду :()
Jacques de Hooge

Я змінив свою відповідь стосовно вашої помилки пріоритету.
Steampunkery

1
Слово попередження: мені здається поганою ідеєю змінити pythonна Python 3. Типовим способом викликати сценарії, написані в Python 2, є python my-script-p2.py, поки це python3 my-script-p3.py. Я б очікував, що багато системних сценаріїв будуть покладатися на це.
jan

1
Для тих, хто цікавиться цією темою, я рекомендую звернути увагу на віртуальне середовище: docs.python.org/3/tutorial/venv.html Мій Ubuntu 18 LTS все ще використовує Python 2.7, і, наприклад, я використовую віртуальне середовище для використання Python 3.X та бути в курсі моїх проектів Django.
Віктор Бьорн

Відповіді:


136

Відкрийте файл .bashrc nano ~/.bashrc. Введіть alias python=python3новий рядок у верхній частині файлу, а потім збережіть файл ctrl + o та закрийте файл ctrl + x. Потім поверніться до типу командного рядка source ~/.bashrc. Тепер ваш псевдонім має бути постійним.

Редагувати:

Для альтернатив оновлення пріоритет - ціле число. Пріоритет представляє, яку програму слід використати першою. Ця стаття підсумовує все це досить добре.


61
Це неправильна відповідь. Редагування bashrc не робить те ж саме, що й альтернативи оновлення. Наприклад, сценарії, які починаються з #!/usr/bin/env python, не використовуватимуть версію в bashrc. Будь ласка, використовуйте відповідь @ Pardhu.
stonewareslord

Цю відповідь я писав давно, і знаю, що альтернативи для оновлення - це не те саме, що змінити bashrc. Я можу відредагувати відповідь, якщо хочете.
Steampunkery

1
Це скоріше попередження для користувачів із цим питанням, що зміна псевдоніма не робить те саме. Ви хочете редагувати.
stonewareslord

Це єдина відповідь, яка мені допомогла. Я намагався робити sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5.2. But I got: update-alternatives: --install needs <link> <name> <path> <priority> Use 'update-alternatives --help' for program usage information.
alexchenco

1
Я це робив, і це ламало речі, як virtualenvs. Ця відповідь створює більше проблем
Кузеко

296

Другий згаданий рядок можна змінити на

update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Це дає пріоритет 10 для шляху в python3. Недоліком редагування .bashrcфайлу є те, що він не працюватиме під час використання команд з sudo.

Оновлення: Будь ласка, використовуйте sudoпід час виконання команди, як це:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10


3
Хороший і простий вихід.
ПракашГ

7
Добре і правильно до суті. "<priority>" у повідомленні про помилку вже запропонував це. BTW, "sudo", як правило, необхідний для запуску цієї команди встановлення.
ywu

4
Як сказав ywu, мені довелося запустити "sudo update-alternative --install / usr / bin / python python / usr / bin / python3 10"
Roy

3
Це правильний спосіб зробити це точно, але варто зазначити, що зміна загальносистемного замовчування, ймовірно, може порушити деякі речі. Наприклад, мені довелося перейти і застосувати виправлення до термінатора , який працює лише з python2.
Дейл Андерсон

1
Працює не повністю - після pythonзапуску цієї команди python3, але python-configвсе одно працює python2-configі загальний обрив настає
Кріс Додд

36

Щоб змінити Python 3.6.8 як стандартний у Ubuntu 18.04 на Python 3.7.

Встановіть Python 3.7

Етапи встановлення Python3.7 та налаштування його як інтерпретатора за замовчуванням.

  1. Встановіть пакунок python3.7 за допомогою apt-get

    sudo apt-get install python3.7

  2. Додайте Python3.6 та Python 3.7 до update-alternatives

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
  1. Оновіть Python 3, щоб вказати на Python 3.7

    sudo update-alternatives --config python3 Введіть 2 для Python 3.7

  2. Перевірте версію пітона

python3 --v
Python 3.7.1 

3
Ви можете включити попередження про те, що це може зламати пакується програмне забезпечення. Python 3.6 - це розподілений за замовчуванням і будь-який пакет програмних пакетів також передбачає цю версію.
Тім

Це мені допомогло. Дякую.
jeffry copps

Чи можу я замінити python на версію 3.7 замість python3?
вихід Гонг

@Tim, який найкращий спосіб подбати про це?
Шрея

@Wee Hong, так можна. Замість $ sudo оновлення-альтернатива - встановлення / usr / bin / python3 python3 .... ви просто заміните на $ sudo update-alterative --встановити / usr / bin / python python ..... і після: оновити sudo -алтернативи --конфігурний пітон.
Артур Зеніг

23

Щоб перейти на python3, ви можете використовувати наступну команду в терміналі alias python=python3.


4
Але це працює лише для поточного запущеного процесу в терміналі. Якщо я закрию і відкрию термінал, він повернеться до python2.
RejeeshChandran

2
@RejeeshChandran Подивіться на відповідь Steampunkery
Сераф

13

Простим безпечним способом було б використання псевдоніма. Помістіть це у файл ~ / .bashrc: якщо у вас є редактор gedit

gedit ~ / .bashrc

перейти до файлу bashrc, а потім у верхній частині файлу bashrc внести наступні зміни.

псевдонім python = python3

Після додавання сказаного у файл. запустіть команду нижче

джерело ~ / .bash_aliases або джерело ~ / .bashrc

приклад:

$ python --вернення

Python 2.7.6

$ python3 - конверсія

Python 3.4.3

$ alias python = python3

$ python --вернення

Python 3.4.3


10

Як додатковий додаток, ви також можете додати псевдонім для pip (у .bashrc або bash_aliases):

псевдонім pip = 'pip3'

Ви багато хто вважає, що чиста установка python3 насправді вказує на python3.x, тож вам може знадобитися:

псевдонім pip = 'pip3.6'
псевдонім python = 'python3.6'


7

Спочатку встановіть python3 та pip3

sudo apt-get install python3 python3-pip

то у вашому терміналі запустіть

alias python=python3

Перевірте версію python у вашій машині.

python --version

7

Якщо у вас є Ubuntu Focal (20.20), ви можете встановити python-is-python3 :

sudo apt-get install python-is-python3

замінити символьне посилання на, /usr/bin/pythonщоб вказати на /usr/bin/python3.8.


5

Як мовиться, update-alternatives --install потрібні аргументи <посилання> <ім'я> <шлях> та <пріоритет>.

У вас є посилання ( /usr/bin/python), ім'я ( python) та шлях ( /usr/bin/python3), вам не вистачає пріоритету.

update-alternatives --help каже:

<priority> - ціле число; варіанти з більшими цифрами мають більший пріоритет в автоматичному режимі.

Тому просто покладіть 100або щось на кінець


5

Зробіть

cd ~
gedit .bash_aliases

то напишіть або

alias python=python3

або

alias python='/usr/bin/python3'

Збережіть файл, закрийте термінал і відкрийте його знову.
Вам має бути добре зараз! Посилання


5

Просто виконайте ці кроки, щоб допомогти змінити пітон за замовчуванням на нещодавно оновлену версію python. Добре працював для мене.

  • sudo apt-install python3.7 Встановіть останню потрібну версію python
  • cd /usr/bin Введіть кореневий каталог, де встановлено python
  • sudo unlink pythonабо sudo unlink python3. Від’єднайте поточний пітон за замовчуванням
  • sudo ln -sv /usr/bin/python3.7 python Пов’яжіть нову завантажену версію python
  • python --version Перевірте нову версію пітона, і ви готові йти

3

Для іншого неінвазивного підходу лише для поточного користувача:

# First, make $HOME/bin, which will be automatically added to user's PATH
mkdir -p ~/bin
# make link actual python binaries
ln -s $(which python3) python
ln -s $(which pip3) pip

python pip буде готова в новій оболонці.


2

отримати шлях пітона від

ls /usr/bin/python*

потім встановіть версію python

alias python="/usr/bin/python3"

0

Найкращий спосіб ubuntu 18.04, який буде працювати для всіх користувачів, - це

sudo vim /etc/bash.bashrc
add lines
alias python=python3
alias pip=pip3

Збережіть зміни та перезапустіть.

Після перезапуску будь-яка версія python 3, яка у вас є в системі, разом з python 2.7, буде прийнята за замовчуванням. Ви можете бути більш конкретними, сказавши наступне в псевдонімі, якщо у вас є кілька версій python 3.

sudo vim /etc/bash.bashrc
add lines
alias python=python3.6
alias pip=pip3.6

0

Просто видаліть python-is-python2:

sudo apt purge python-is-python2

І встановіть python-is-python3:

sudo apt install python-is-python3

Це автоматизує процес переходу на новий python3. За бажанням ви зможете позбутися інших пакетів пізніше:

sudo apt autoremove && sudo apt autoclean

0

Щоб змінити Python 3.6.8 як стандартний у Ubuntu 18.04 з Python 2.7, можна спробувати інструмент командного рядка update-alternatives.

sudo update-alternatives --config python

Якщо ви отримаєте помилку "немає альтернатив для python", то встановіть альтернативу самостійно за допомогою наступної команди:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

Відповідно змініть шлях /usr/bin/python3до потрібної версії пітона.

Останній аргумент вказав, що це пріоритет означає, якщо не буде зроблено альтернативного ручного вибору, буде встановлена ​​альтернатива з найвищим номером пріоритету. У нашому випадку ми встановили пріоритет 2 для, /usr/bin/python3.6.8і в результаті /usr/bin/python3.6.8команда оновлення-альтернативи була автоматично встановлена ​​як версія пітону за замовчуванням.

ми можемо в будь-який час перемикатися між перерахованими вище альтернативними версіями пітона, використовуючи команду нижче та вводячи номер вибору:

update-alternatives --config python

-1

Спочатку переконайтесь, що Python3 встановлений на вашому комп’ютері

Перейдіть до свого терміналу і введіть:

cd ~/ перейти до домашнього каталогу

Якщо ви ще не створили .bash_profile, введітьtouch .bash_profile щоб створити .bash_profile.

Або введіть, open -e .bash_profileщоб відредагувати файл.

Скопіюйте та збережіть alias python=python3у .bash_profile.

Закрийте і знову відкрийте свій Термінал. Потім введіть наступну команду, щоб перевірити, чи Python3 є вашою версією за замовчуванням:

python --version

Ви повинні побачити python 3.xy - ваша версія за замовчуванням.

Ура!


цей спосіб вже описаний у кращій відповіді на це питання. і ваша відповідь нічого не сприяє.
tripulse
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.