Обновление Python в системе Ubuntu

78

Я хочу обновить сборку Python на своем компьютере с Linux, но я знаю, как это сделать, - удалить текущую версию и установить новую. Моя система уже обновлена ​​(я вчера обновил). Я хотел знать, есть ли способ обновить определенную программу из командной строки, например sudo apt-get update <program-name>. Я знаю, что эта команда не существует, но я надеюсь, что что-то эквивалентное делает.

efficiencyIsBliss
источник
Если ваша система обновлена, то есть и Python в вашей системе (согласно вашим репозиториям). Я ошибаюсь?
Кир

Ответы:

64

Как уже отмечали другие, bare sudo apt-get install packageустановит последнюю доступную версию, заменив старую при необходимости.

Но с некоторыми программами (среди которых есть Python) ситуация несколько иная. Некоторые основные, очень и несовместимо разные версии получают свои собственные пакеты. Например, Python 2.6 , Python 2.7 , Python 3.1 все живут в отдельных пакетах в Ubuntu.

Особое значение имеет тот факт, что одной из политик Ubuntu является широкое использование Python для написания программного обеспечения для конечных пользователей. Таким образом , в самом деле, довольно большая часть системы будет написана на Python. На данный момент код работает на Python 2.6 - поэтому эта версия по умолчанию устанавливается при установке; и код не будет легко работать, скажем, на Python 2.7 - потому что существуют несовместимости. Чтобы переключить систему на Python 2.7, необходимо выполнить часть работы, включающую обновление и повторное тестирование всех сценариев. Это не может быть сделано легко; то есть вы не можете просто «переключить» свою систему на Python 2.7 и удалить старую версию.

Но. Если вам не интересны модные механизмы вашей системы и вам нужен только новый Python - не вижу препятствий. Иди и sudo apt-get install python3и код для 3.x Python смело; просто не забывайте запускать свои скрипты python3и использовать #!/usr/bin/env python3строку shebang.

ulidtko
источник
6
Большая деталь о закулисных работах.
эффективностьIsBliss
16
sudo apt-get install python 3.3.3

для python (3.3.3) для другой версии должен использоваться соответствующий номер версии.

Mrinal
источник
4
Я думаю, что пространство между питоном и версией не должно быть. sudo apt-get install python3.6работал для меня, но никак не влияет на 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' ... Отдельные аргументы говорят apt установить несколько пакетов
Clancy Hood
3
После установки моего Python номер версии такой же? Что может быть причиной?
Рамеш Парик
Я использовал этот метод, но не могу найти, где он был установлен (например, как открыть оболочку 3.7). @RameshPareek это тоже могло быть твоей проблемой. похоже не находится в / usr / bin. python is already the newest version (2.7.12-1~16.04). python set to manually installed.есть идеи?
Bjorks номер один поклонник
10
sudo apt-get install python3.6

Это устанавливает Python 3 в Linux вдоль стороны Python 2. Для доступа к Python 3 войдите после того, как вы открыли терминал.

python3
G-Ox7cd
источник
2
Это дублирует другой ответ и не добавляет новый контент. Пожалуйста, не публикуйте ответ, если у вас нет чего-то нового.
DavidPostill
3
извините, я просто хотел написать команду, чтобы получить новую.
G-Ox7cd
6
Если я бегу, то получаю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'
Кайса
1
sudo add-apt-repository ppa: deadsnakes / ppa -y && sudo apt-get update
ski_squaw
E: Unable to locate package python3.6
Димс
4

Вы близки к мысли о такой команде sudo apt-get update(которая является реальной командой, но не делает то, что вы хотите).

Чтобы обновить Python и все остальное, что вы установили, просто выполните команду:

sudo apt-get upgrade
Wuffers
источник
Спасибо, но я уже знал о команде обновления, поэтому я опубликовал тот факт, что моя система уже обновлена. Я надеялся найти команду, которая могла бы быть нацелена на определенные приложения.
эффективностьIsBliss
apt не будет обновлять что-либо до последней версии, поэтому это не будет иметь значения; p
Путешественник, выродок
ОП хочет обновить Python специально . Сказать им обновить все имеющиеся у них пакеты - это ленивый и плохой совет.
Przemek D
3

С нашего родственного сайта: https://askubuntu.com/questions/44122/how-to-upgrade-a-single-package-using-apt-get

Каждая из этих команд обновляется путем установки, которая во многих случаях должна работать нормально, но может не подходить для конкретного случая.

Если вы хотите обновить только конкретный пакет И только если он уже установлен, используйте команду:

sudo apt-get install --only-upgrade packagename
music2myear
источник
3

Если вы хотите обновить только минорную версию пакета Python, например 2.7.11+ t0 2.7.12, тогда вам sudo apt-get install python2.7стоит сделать do

Сентил Кумар Вайтиянатан
источник
2

Pyenv может быть хорошим вариантом для вас: https://github.com/yyuu/pyenv


Что касается ответа @ ulidtko , возможной альтернативой полной замене системного Python может быть использование изолированной среды с желаемой версией Python. Это похоже на «виртуальную среду», но для самого Python. Я использовал это в прошлом для устаревших проектов, работающих на python 2.6, а также при обновлении с прежней версии python до python3.

nicefinly
источник
Я не знаком с областью, но не могли бы вы объяснить, как это решает вопрос и решает проблему?
Бен N
1
Что касается ответа @ ulidtko ( superuser.com/a/241903/152143 ), возможной альтернативой полной замене системного Python может быть использование изолированной среды с желаемой версией Python. Это похоже на «виртуальную среду», но для самого Python. Я использовал это в прошлом для устаревших проектов, работающих на python 2.6, а также при обновлении с прежней версии python до python3.
приятно,
1
apt-get install python

Я считаю, что это должно работать. Вам нужно будет изменить 'python', чтобы он явно совпадал с соответствующим именем пакета в вашем хранилище.

mbreedlove
источник
1

Как мы все знаем, Python поставляется с версией 3.5. Поэтому очень просто обновить Python 2.7 (который по умолчанию присутствует в Ubuntu 16.04) до Python 3.5.

Выполните следующие шаги:

  1. Откройте терминал.
  2. Станьте пользователем root с помощью команды sudo.
  3. Используйте код ниже, чтобы обновить Python 2.7 до 3.5

    sudo apt-get установить python3.5

  4. Вас спросят о вашем разрешении, затем дайте вариант Y.

  5. Подождите, пока не завершите процесс.
  6. очистить экран с помощью команды clear
  7. Проверьте версию Python командой ниже.

    версия Python

Big Data Guy
источник
1
Пожалуйста, используйте правильное форматирование в будущем и держитесь подальше от утверждений типа «Надеюсь, это поможет вам». они просто шум. Предполагается, что, отвечая на вопрос, вы пытаетесь ответить на вопрос чем-то полезным. Вы должны пройти свой ответ и исправить мелкие грамматические ошибки, которые я не исправил, и предоставить скриншоты процесса. Я исправил форматирование для вас на этот раз, я не буду делать это снова, я твердо верю, что авторы должны быть готовы исправить свои собственные ответы и вопросы.
Ramhound
И это не так просто, это не обновляет символические ссылки должным образом, так что вы получите 3.4 и 3.5 бок о бок. Python2, как правило, соседствует с python3 в любом случае, мы не обновляем Python2 до Python3, мы переносим нашу работу.
Маккензм
0

В одном случае, когда вы используете LTS-версию, ваш питон может отставать от вспомогательной версии, скажем, 2.7.5 вместо 2.7.10.

Одной из возможностей будет обновление системы :

  • установить prompt=normalв/etc/update-manager/release-upgrades
  • обновить систему
    • в командной строке вы можете набрать, sudo do-release-upgradeчтобы менеджер обновлений выполнил свою работу по обновлению до последней (= не-LTS) версии.
    • решение с графическим интерфейсом использует менеджер обновлений

Как всегда при обновлении, взгляните на примечания к выпуску , так как обновление может сломать вашу систему в некоторых случаях, см . Комментарий @ Gino .

Serv-вкл
источник
Чувак, я попробовал твои изменения, и это сломало мою систему Ubuntu 14.04! По сути, он пытался обновиться с 14.04 до Ubuntu 15 и не смог сделать это успешно, оставив мою систему в состоянии на полпути, когда графический вход в систему больше не работал - например, я войду через графический вход, и он вылетит я возвращаюсь к тому же графическому логину. Просто провел последний час + переустановка Ubuntu 14.04 на мою машину, чтобы исправить поломку вашего предполагаемого решения .
Джино
@ Джино: Спасибо за отзыв. Вы уже посмотрели askubuntu.com/questions/612973/… , askubuntu.com/questions/223501/… и заметки о выпуске? Возникла проблема с «драйвером AMD fglrx». Вам нужна другая помощь?
Серв-ин
Я думаю, что ваше предложение обойти обычные проверки безопасности, тем самым допуская обновление до версии, отличной от LTS, чревато опасностями. До сих пор я не знаю, почему обновление не удалось, потому что он не показывает никаких диагностируемых сообщений об ошибках. Вместо этого у меня появилась система, которую больше нельзя было использовать. Если я правильно помню, я перезапустил установку Ubuntu с некоторыми настройками, которые смогли восстановить большую часть моей системы. И, как примечание, я профессиональный программист, поэтому я обычно знаю, как работать с системой Linux.
Джино
@ Джино: Кажется, это стандартная процедура перехода с LTS на не-LTS. Это [изменяет] уровень осведомленности о новых выпусках. Можно установить «поддерживается» (регулярные) релизы, «только долгосрочные» (LTS) выпуски, или даже «ничего» (никаких серьезных модернизаций).» 'Для цитаты см askubuntu.com/questions/240160/... . Он использует менеджер обновлений системы.К сожалению, в вашем случае (по умолчанию) обновление не сработало, что может быть связано с ошибкой графического драйвера (см. Ссылки выше).
serv-inc