![Обновление Python в системе Ubuntu](https://rvso.com/image/1264401/%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20Python%20%D0%B2%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5%20Ubuntu.png)
Я хочу обновить сборку Python на моем Linux-компьютере, но единственный способ, который я знаю, это удалить текущую версию и установить новую. Моя система уже обновлена (я обновил ее вчера). Я хотел узнать, есть ли способ обновить определенную программу из командной строки, например sudo apt-get update <program-name>
. Я знаю, что такой команды не существует, но я надеюсь, что есть что-то эквивалентное.
решение1
Как уже отметили другие, bare sudo apt-get install package
установит последнюю доступную версию, заменив старую при необходимости.
Но с некоторым программным обеспечением (среди которых есть Python) ситуация несколько иная. Некоторые основные, очень и несовместимо-различные версии получаютихпакеты. Например,Питон 2.6,Питон 2.7,Питон 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 line.
Обновлено:Я постоянно вижу, как за это голосуют. Обратите внимание, чтоэто ответ 9-летней давности, времена изменились.
Что изучать дальше
ИзсуперпользовательС точки зрения (не разработчика Python), следующие вещи, которые я бы посоветовал изучить:
pip
/pip3
/python3 -m pip
— это дляnpm
Python. Быстрый совет: попробуйтеpip3 install --user howdoi
(возможно, придетсяapt install python3-setuptools python3-pip
один раз, прежде чем это сработает). Тогда, например,howdoi --all compile python3 ubuntu
.Инструмент
virtualenv
. Он на 100% ориентирован на разработчиков, но вам, скорее всего, придется использовать его (возможно, под несколькими оболочками, такими какtox
) для работы с исходными пакетами людей. Песочница
Rubybundler
или Cabal может быть знакомыми аналогами.Инструмент
conda
— это совершенно отдельный репозиторий и установщик пакетов Python (можно сказать, форк PyPi).
ЕстьогромныйРазнообразие инструментов в экосистеме Python в 2020 году. По крайней мере, освойтесь, pip
прежде чем углубляться в изучение.
Основные подводные камни
Для смелых, но неосторожных: несколько классических ошибок при попытке вручную настроить новую версию CPython в Ubuntu.
Оставить
/usr
одного; вы можете смотреть, но не трогать. Оставьте это , избавьте себя от путаницы. В вашем распоряженииdpkg
все :/usr/local
sudo chown -R `whoami` /usr/local pip3 install --prefix=/usr/local pydf
Компиляция CPython из исходниковхорошо объяснено в сети; просто не забудьте свой
/usr/local
префикс. Это лучший способ вручную тестировать патчи и/или предварительные версии (те самые альфа-, rc-сборки) самого CPython. Чтобы стереть артефакты сборки, вы можете простоrm -rf /usr/local/*; sudo ldconfig
.Поиск PPAтоже достойный вариант; помните, что PPA — это просто чья-то частная сборка. Ищите надежные PPA с работающим CI/CD.
решение2
sudo apt-get install python 3.3.3
это для python(3.3.3), для других версий следует использовать соответствующий номер версии.
решение3
sudo apt-get install python3.6
Это установит Python 3 в Linux вместе с Python 2. Чтобы получить доступ к Python 3, введите команду после открытия терминала.
python3
решение4
С нашего родственного сайта:https://askubuntu.com/questions/44122/how-to-upgrade-a-single-package-using-apt-get
Каждая из этих команд обновляется по мере установки, что должно работать во многих случаях, но в некоторых случаях может оказаться не тем, что вам нужно.
Если вы хотите обновить только определенный пакет И только если он уже установлен, то используйте команду:
sudo apt-get install --only-upgrade packagename