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


78

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


Якщо ваша система оновлена, так це і Python у вашій системі (відповідно до ваших сховищ). Я помиляюся?
cYrus

Відповіді:


64

Як уже зазначали інші, голі sudo apt-get install packageвстановлять останню доступну версію, замінюючи стару, якщо потрібно.

Але з деяким програмним забезпеченням (серед якого і Python) ситуація дещо інша. Деякі великі, very- і несумісно-різні версії отримують свої власні пакети. Наприклад, 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.


6
Чудова подробиця про кулуарні розробки.
ефективністьIsBliss

16
sudo apt-get install python 3.3.3

це для python (3.3.3) для іншої версії, слід використовувати відповідний номер версії.


4
Я думаю, що місця між python та версією не повинно бути. 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' ... Окремі аргументи говорять про сприятливість встановлення декількох пакетів
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.якісь ідеї?
Вболівальник номер один Бьоркс

10
sudo apt-get install python3.6

При цьому встановлюється python 3 в Linux разом із бічним python 2. Для доступу до python 3 введіть після відкриття терміналу.

python3

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

Дякую, але я вже знав про команду оновлення, тому я опублікував той факт, що моя система вже оновлена. Я сподівався знайти команду, яка могла б бути націленою на конкретні програми.
ефективністьIsBliss

apt не оновлював би нічого актуального, так що це не
змінило б

OP хоче оновити пітон спеціально . Показувати їм оновити всі наявні у них пакети - це ледача та погана порада.
Пшемек Д

3

З нашого сестринського сайту: https://askubuntu.com/questions/44122/how-to-upgrade-a-single-package-using-apt-get

Кожна з цих команд відновлює інсталяцію, яка у багатьох випадках має спрацьовувати добре, але може бути не такою, що ви шукаєте в конкретному випадку.

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

sudo apt-get install --only-upgrade packagename


2

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


Що стосується відповіді @ ulidtko , можливою альтернативою заміні системного пітона може бути використання ізольованого середовища з потрібною версією python. Це схоже на "віртуальне середовище", але для самого пітона. Раніше я використовував це для застарілих проектів, які працюють на python 2.6, а також при переході від застарілої версії python до python3.


Я не знайомий з цією областю, але ви могли б пояснити, як це вирішує питання та вирішує проблему?
Ben N

1
Що стосується відповіді @ ulidtko ( superuser.com/a/241903/152143 ), можливою альтернативою взагалі заміни системного пітона може бути використання ізольованого середовища із потрібною версією python. Це схоже на "віртуальне середовище", але для самого пітона. Раніше я використовував це для застарілих проектів, які працюють на python 2.6, а також при переході від застарілої версії python до python3.
приємно

1
apt-get install python

Я вважаю, що це має спрацювати. Вам потрібно буде змінити "python", щоб відповідати відповідній назві пакета у вашому сховищі.


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 install python3.5

  4. Вам буде запропоновано дозвіл, тоді виберіть опцію Y.

  5. Зачекайте, поки процес завершиться.
  6. очистити екран за допомогою команди clear
  7. Перевірте версію python за допомогою команди нижче.

    пітон -версія


1
Будь-ласка, використовуйте належне форматування в майбутньому і тримайтеся подалі від тверджень типу "Сподіваюся, що це допоможе вам". вони просто шум. Відповідаючи на запитання, передбачається, що ви намагаєтесь відповісти на питання чимось корисним. Ви повинні пройти свою відповідь і виправити незначні граматичні помилки, які я не виправляв, і наводив скріншоти процесу. Цього разу я зафіксував форматування для вас, я більше не буду це робити, я переконаний, що авторам слід заважати виправляти власні відповіді та питання.
Рамхаунд

І це не так просто, це не оновлює символічні посилання належним чином, тож ви отримуєте 3.4 та 3.5 поряд. Python2, як правило, поряд з python3, так чи інакше, ми не модернізуємо Python2 до Python3, ми переміщуємо нашу роботу.
mckenzm

0

У тому випадку, коли ви використовуєте LTS-версію, ваш пітон може бути позаду другої версії, скажімо, 2.7.5 замість 2.7.10.

Однією з можливостей було б оновлення системи :

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

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


Чувак, я спробував твою зміну, і це зламало мою систему Ubuntu 14.04! В основному, він намагався оновити з 14.04 до Ubuntu 15, і це не вдалося зробити це успішно, залишивши мою систему в напівшляховому стані, коли графічний логін більше не працював - наприклад, я б увійшов через графічний логін, і він би натиснув я повернусь до того ж графічного входу. Щойно витратив минулу годину + перевстановив Ubuntu 14.04 на свою машину, щоб виправити розрив вашого передбачуваного рішення .
Джино

@Gino: Дякую за відгук. Чи були у вас вигляд askubuntu.com/questions/612973/… , askubuntu.com/questions/223501/… та примітки до випуску? Виникла проблема з "драйвером fglrx" AMD ". Чи хотіли б ви будь-якої іншої допомоги?
серв-інк

Я думаю, що Ваша пропозиція обійти звичайні перевірки безпеки, тим самим дозволяючи оновити до не-LTS версії загрожує небезпекою. На сьогоднішній день я не знаю, чому оновлення не вдалося, оскільки воно не показувало жодних повідомлень про помилки, які можна встановити. Натомість я закінчився системою, яка вже не була корисною. Якщо я пам'ятаю правильно, я закінчив перезапуск установки Ubuntu з певними налаштуваннями, які змогли відновити більшу частину моєї системи. І, як зауваження, я професійний програміст, тому загалом знаю свій шлях навколо системи Linux.
Джино

@Gino: Схоже, це стандартна процедура переходу з LTS на не-LTS. Це '[змінює] рівень обізнаності нових випусків. Можна встановити це на "підтримувані" (регулярні) випуски, "лише довгострокові" (LTS) або навіть "нічого" (без великих оновлень). "" Про цитату див. Askubuntu.com/questions/240160/… . Він використовує диспетчер оновлень системи. На жаль, у вашому випадку оновлення (за замовчуванням) не спрацювало, що може бути пов’язано з помилковим драйвером графіки (див. Посилання вище).
serv-inc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.