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

147

Я пытался установить версию python по умолчанию 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 и не знаю, что делаю не так.

RejeeshChandran
источник
3
Как указано в предупреждении, вам не хватает приоритета.
greedy52 01
6
Не удаляйте Python 2.7, так как он повредит многие возможности вашей ОС (из опыта :()
Жак де Хоге,
Я изменил свой ответ в связи с вашей ошибкой приоритета.
Steampunkery
1
Небольшое предупреждение: мне кажется плохой идеей переходить pythonна Python 3. По умолчанию скрипты, написанные на Python 2 python my-script-p2.py, вызывают , пока он python3 my-script-p3.py. Я ожидал, что многие системные скрипты будут полагаться на это.
ян
1
Тем, кому интересна эта тема, я рекомендую обратить внимание на виртуальную среду: docs.python.org/3/tutorial/venv.html Моя Ubuntu 18 LTS по-прежнему использует Python 2.7, а я, например, использую виртуальная среда для использования Python 3.X и обновления моих проектов Django.
Виктор Бьорн,

Ответы:

140

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

РЕДАКТИРОВАТЬ:

Для альтернатив обновления приоритет - целое число. Приоритет указывает, какая программа должна быть использована первой. В этой статье все подытожено довольно хорошо.

Steampunkery
источник
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

Pardhu
источник
3
Хороший и легкий выход.
PrakashG
7
Хорошо и прямо по делу. "<priority>" в сообщении об ошибке уже предлагал это. Кстати, для запуска этой команды установки обычно требуется "sudo".
ywu
4
Как сказал ywu, мне пришлось запустить «sudo update-alternatives --install / usr / bin / python python / usr / bin / python3 10»
Рой
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. Протестируйте версию python

python3 --v
Python 3.7.1 
Пурушоттам Прабхакар
источник
3
Вы можете включить предупреждение о том, что это может нарушить работу упакованного программного обеспечения. Python 3.6 является распространяемым по умолчанию, и все связанные пакеты программного обеспечения также предполагают эту версию.
Тим
Это помогло мне. Спасибо.
Джеффри Коппс
Могу ли я заменить python на версию 3.7 вместо python3?
Ви Хонг,
@ Тим, как лучше об этом позаботиться?
Шрея
@Wee Hong, да, можно. Вместо $ sudo update-alternate --install / usr / bin / python3 python3 .... вы просто заменяете на $ sudo update-alterative --install / usr / bin / python python ..... и после: sudo update -альтернативы --config python.
Артур Зенниг,
23

Чтобы перейти на python3, вы можете использовать следующую команду в терминале alias python=python3.

DanteVoronoi
источник
4
Но это работает только для текущего запущенного процесса в терминале. Если я закрою и открою терминал, он вернется к python2.
RejeeshChandran 01
2
@RejeeshChandran Посмотрите на ответ стимпанкери
Сераф
13

Простой безопасный способ - использовать псевдоним. Поместите это в файл ~ / .bashrc: если у вас есть редактор gedit, используйте

gedit ~ / .bashrc

чтобы перейти в файл bashrc, а затем в верхней части файла bashrc внести следующие изменения.

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

После добавления вышеуказанного в файл. запустите команду ниже

источник ~ / .bash_aliases или источник ~ / .bashrc

пример:

$ python --version

Python 2.7.6

$ python3 - версия

Python 3.4.3

$ псевдоним python = python3

$ python --version

Python 3.4.3

хан
источник
10

В качестве дополнительной опции вы также можете добавить псевдоним для pip (в .bashrc или bash_aliases):

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

Многие обнаруживают, что чистая установка python3 фактически указывает на python3.x, поэтому вам могут понадобиться:

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

Paraic
источник
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.

silviot
источник
5

Как говорится, update-alternatives --install необходимы аргументы <link> <name> <path> и <priority>.

У вас есть ссылка ( /usr/bin/python), имя ( python) и путь (/usr/bin/python3 ), вам не хватает приоритета.

update-alternatives --help говорит:

<приоритет> - целое число; варианты с более высокими номерами имеют более высокий приоритет в автоматическом режиме.

Так что просто поставьте 100или что-то в конце

user7502402
источник
5

Делать

cd ~
gedit .bash_aliases

затем напишите либо

alias python=python3

или

alias python='/usr/bin/python3'

Сохраните файл, закройте терминал и откройте его снова.
Теперь все должно быть в порядке! Ссылка на сайт

Rika
источник
5

Просто выполните следующие действия, чтобы изменить Python по умолчанию на новую обновленную версию 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 Проверьте новую версию Python, и все готово
Шория Шарма
источник
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 будет готов в новой оболочке.

tdihp
источник
2

получить путь к Python от

ls /usr/bin/python*

затем установите свою версию Python

alias python="/usr/bin/python3"
Pradeep Karunathilaka
источник
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Соответственно измените путь к желаемой версии Python.

Последний аргумент, указанный как приоритет, означает, что если вручную не выбрать альтернативу, будет установлена ​​альтернатива с наивысшим номером приоритета. В нашем случае мы установили приоритет 2 для /usr/bin/python3.6.8и в результате /usr/bin/python3.6.8была автоматически установлена ​​как версия Python по умолчанию с помощью команды update-alternatives.

мы можем в любое время переключаться между перечисленными выше альтернативными версиями Python, используя команду ниже и вводя номер выбора:

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 06