Як оновити Python?


135

У мене версія 2.7 встановлена ​​з початку 2012 року. Я не можу знайти єдиної думки щодо того, чи варто повністю видаляти та видаляти цю версію перед тим, як ставити останню версію.

"Soft" - перенесення старих версій? Старовинні версії? Встановлення поверх?

Десь я бачив спеціальний процес встановлення / оновлення, використовуючи метод "сегментації" установок Python, зберігаючи різні версії окремо і окремо, але функціонально. Не впевнений, чи це стандартний, де-факто спосіб.

Мені також цікаво, чи Revo стає занадто переборливим і може спричинити проблеми зі стиранням все ще потрібних залишків, таких як змінні середовища / PATH.

(Win7 x64, 32-розрядний Python)


1
2.7 все ще є останньою версією - у будь-якій серії 2.x. 3.x є несумісним назад. якщо ви хочете оновити до поточного випуску 2.7, я б просто встановити зверху.
Eevee

Відповіді:


106
ОНОВЛЕННЯ : 2018-07-06

Цій посаді зараз майже 5 років! Python-2.7 припинить отримувати офіційні оновлення від python.org у 2020 році . Також випущено Python-3.7 . Ознайомтеся з Python-Future про те, як зробити свій код Python-2 сумісним з Python-3. Для оновлення conda документація тепер рекомендує використовувати conda update --allв кожному з ваших середовищ conda для оновлення всіх пакетів і виконуваного Python для цієї версії. Крім того, оскільки вони змінили своє ім'я на Anaconda, я не знаю, чи є ключі реєстру Windows такими ж.

ОНОВЛЕННЯ : 2017-03-24

З червня 2015 року оновлення Python (x, y) не було, тому я вважаю, що можна припустити, що його покинули.

ОНОВЛЕННЯ : 2016-11-11

Як коментує @cxw нижче , ці відповіді стосуються тих самих бітових версій, а під бітовою версією я маю на увазі 64-бітну проти 32-бітну. Наприклад, ці відповіді стосуватимуться оновлення з 64-розрядної Python-2.7.10 до 64-розрядної Python-2.7.11, тобто : тієї ж бітової версії. Хоча можна встановити дві різні бітові версії Python разом, це потребує певного злому, тому я врятую цю вправу для читача. Якщо ви не хочете зламати, я пропоную, якщо перемикаєте біт-версії, спочатку видаліть іншу біт-версію.

ОНОВЛЕННЯ : 2016-05-16
  • Anaconda та MiniConda можна використовувати з існуючою установкою Python, відключивши параметри для зміни Windows PATHта реєстру. Після вилучення створіть симпосилання до condaсвого binабо встановіть conda з PyPI. Потім створіть ще одну символічну посилання , conda-activateщоб activateв кореневій папці бін Анаконда / Miniconda. Зараз Anaconda / Miniconda - це як Ruby RVM. Просто використовуйте conda-activate rootдля включення Anaconda / Miniconda.
  • Портативний Python більше не розробляється та не підтримується.

TL; DR

  • Використовуючи Anaconda або miniconda , а потім просто виконати, conda update --allщоб оновлювати кожне середовище conda,
  • та сама основна версія офіційного Python ( наприклад, 2.7.5), просто встановіть на стару ( наприклад, 2.7.4),
  • інша основна версія офіційного Python ( наприклад, 3.3), встановіть поруч зі старими, встановлені шляхи / асоціації, щоб вказувати на домінанту ( наприклад, 2.7), ярлик до інших ( наприклад, у BASH $ ln /c/Python33/python.exe python3).

Відповідь залежить:

  1. Якщо OP має 2.7.x і хоче встановити новішу версію 2.7.x, то

    • якщо ви використовуєте інсталятор MSI з офіційного веб-сайту Python , просто встановіть над старою версією, інсталятор видасть попередження, що він видалить та замінить стару версію; переглядаючи "встановлені програми" в "панелі управління" до і після, підтверджує, що стару версію було замінено новою версією; новіші версії 2.7.x зворотно сумісні, тому це повністю безпечно, і тому IMHO кілька версій 2.7.x ніколи не повинні бути необхідними.
    • якщо ви будуєте з джерела, то, ймовірно, вам слід побудувати у свіжому, чистому каталозі, а потім вкажіть свій шлях до нової збірки, як тільки він пройде всі тести, і ви впевнені, що він був побудований успішно, але ви можете захотіти зберегти старе будувати навколо, тому що будівництво з джерела може періодично мати проблеми. Дивіться мій посібник зі створення Python x64 на Windows 7 за допомогою SDK 7.0 .
    • якщо ви встановлюєте з дистрибутива, такого як Python (x, y) , перегляньте їх веб-сайт. Python (x, y) покинутий. Я вважаю, що з оновленнями можна працювати з Python (x, y) з їх менеджером пакетів, але оновлення також розміщені на їхньому веб-сайті . Я не міг знайти конкретного посилання, тому, можливо, хтось інший може говорити з цим. Як і ActiveState і, ймовірно, Enthought, Python (x, y) чітко стверджує, що він несумісний з іншими установками Python:

      Рекомендується видалити будь-який інший дистрибутив Python перед встановленням Python (x, y)

    • Enthought Canopy використовує MSI і встановлюватиметься Program Files\Enthoughtабо home\AppData\Local\Enthought\Canopy\Appдля всіх користувачів, або для кожного користувача відповідно. Нові установки оновлюються за допомогою вбудованого інструменту оновлення. Дивіться їх документацію .
    • ActiveState також використовує MSI, щоб новіші установки могли бути встановлені поверх старих. Див. Їхні інструкції щодо встановлення .

      Інші установки Python 2.7 У Windows ActivePython 2.7 не може співіснувати з іншими установками Python 2.7 (наприклад, збірка Python 2.7 з python.org). Видаліть будь-які інші установки Python 2.7 перед встановленням ActivePython 2.7.

    • Sage рекомендує встановити його у віртуальну машину та надає файл зображень Oracle VirtualBox, який можна використовувати для цієї мети. Оновлення обробляються внутрішньо, видаючи sage -upgradeкоманду.
    • Анаконда може бути оновлена ​​за допомогою condaкоманди :

      conda update --all

      Anaconda / Miniconda дозволяє користувачам створювати середовища для управління кількома версіями Python, включаючи Python-2.6, 2.7, 3.3, 3.4 та 3.5. В даний час кореневі установки Anaconda / Miniconda базуються на Python-2.7 або Python-3.5.

      Анаконда, ймовірно, порушить будь-які інші установки Python. В інсталяції використовується інсталятор MSI. [ ОНОВЛЕННЯ : 2016-05-16] Anaconda та Miniconda тепер використовують .exeінсталятори та надають варіанти вимкнення PATHзмін Windows та змін у реєстрі.

      Тому Anaconda / Miniconda можна встановити, не порушуючи існуючих установок Python залежно від способу її встановлення та параметрів, які були обрані під час встановлення. Якщо використовується .exeінсталятор і параметри для зміни Windows PATHта реєстру не вимкнено, будь-які попередні установки Python будуть відключені , але просто видалення установки Anaconda / Miniconda має відновити початкову установку Python, за винятком можливо Python\PythonCoreключів реєстру Windows .

      Анаконда / Miniconda робить такі зміни реєстру , незалежно від варіантів установки: HKCU\Software\Python\ContinuumAnalytics\з наступними ключами: Help, InstallPath, Modulesі PythonPath- офіційний Python реєструє ці ключі теж, але під Python\PythonCore. Також інформація про видалення зареєстрована для Anaconda \ Miniconda. Якщо ви не встановите параметр «Зареєструватися в Windows» під час встановлення, він не створюється PythonCore, тому інтеграції, такі як Python Tools для Visual Studio, автоматично не бачать Anaconda / Miniconda. Якщо можливість зареєструвати Анаконда / Miniconda буде включена, то я думаю , що існуючі ключі реєстру Python для Windows будуть змінені і деінсталяція, ймовірно , не відновити їх.

    • Оновлення WinPython , я думаю, можна обробляти через панель керування WinPython .
    • Чи не PortablePython це більше не розробляється . У нього не було методу оновлення. Можливо , оновлення може бути розпаковані в новий каталог , а потім App\lib\site-packagesі App\Scriptsможуть бути скопійовані в нову установку, але якщо це не спрацює , то перевстановлення все пакети , можливо, було необхідно. Використовуйте, pip listщоб побачити, які пакунки були встановлені та їх версії. Деякі були встановлені PortablePython. Використовуйте easy_install pipдля установки pip, якщо він не був встановлений.
  2. Якщо OP має 2.7.x і хоче встановити іншу версію, наприклад <= 2.6.x або> = 3.xx, то встановити різні версії поряд з собою добре. Ви повинні вибрати, яку версію Python (якщо така є) пов’язати з *.pyфайлами і яку ви хочете на своєму шляху, хоча ви повинні мати змогу встановлювати оболонки з різними шляхами, якщо ви використовуєте BASH . AFAIK 2.7.x назад сумісний з 2.6.x, тому паралельна установка IMHO не потрібна, проте Python-3.xx не є сумісною назад, тому моя рекомендація буде ставити Python-2.7 на свій шлях і мати Python-3 є додатковою версією, створивши ярлик до його виконуваного файлу під назвою python3 (це звичайна установка в Linux). Офіційний шлях встановлення Python за замовчуванням у Windows є

    • C: \ Python33 для 3.3.x (остання 2013-07-29)
    • C: \ Python32 для 3.2.x
    • & c.
    • C: \ Python27 для 2.7.x (остання 2013-07-29)
    • C: \ Python26 для 2.6.x
    • & c.
  3. Якщо OP не оновлює Python, а лише оновлює пакети, вони, можливо, захочуть розібратися у virtualenv, щоб тримати різні версії пакетів, характерних для їхніх проектів розвитку. Pip - це також чудовий інструмент для оновлення пакетів. Якщо пакети використовують двійкові інсталятори, я зазвичай видаляю старий пакет перед тим, як встановлювати новий.

Я сподіваюся, що це усуне будь-яку плутанину.


1
Гей, Марку, у мене питання для новачків. Чи вважаєте ви, що насправді важливо оновити з 2.7.x до 3.3.x? Я починаю використовувати python і встановив стару версію, але, оскільки я починаю, я хотів вивчити найновішу версію (якщо тільки є дуже незначні відмінності). Як ви закликаєте до цього? Спасибі за вашу допомогу.
Маттео

7
Я б використовував і те, і інше. Якщо ви на MS Windows, ви отримаєте в кореневій папці C:\Python27і C:\Python33, якщо ви на Mac, ви будете бачити /Library/Frameworks/Python/Versions/2.7.xі /Library/Frameworks/Python/Versions/3.3.xякщо ви на Linux ви , ймовірно , вже є і встановити. Традицією є використання Python-2.7 та позначення бінарних файлів для Python-3.3 до python33. Також див. Python2orPython3 та Python 2 проти Python 3 . Мені особисто занадто лінь переходити на 3.3.
Марк Мікофський

2
Дякуємо за детальну відповідь! З 2.7 встановлення над старим не спрацювало, коли один був 32-бітний, а один - 64-розрядний. Я завершив два записи в "Програми та функції", обидва вказують на C: \ Python27. Чи готові ви додати у відповідь, що люди повинні перезаписати лише 32 з 32 та 64 із 64? Дякую!
cxw

1
@cxw дякую за відгук. Якщо ви хочете мати разом і 32, і 64, є способи. Ймовірно , простіше за все використовувати то , що називається «адмін» встановити в 32-розрядної версії в C:\Python27_x86з командного рядка: msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Інший варіант - створити з джерела або спробувати Bootstrap Python .
Марк Мікофський

1
Інсталятор MSI каже, що він замінить папку 2.7, проте якщо ви зберігаєте інші скрипти в кореневій папці 2.7, вони не видалять їх;)
XXN,

6

Найкраще рішення - встановити різні версії Python у декількох контурах.

напр. C: \ Python27 для 2.7, і C: \ Python33 для 3.3.

Прочитайте це для отримання додаткової інформації: Як запустити кілька версій Python в Windows


Ось як я це роблю. Я запускаю 32 та 64-бітні версії python 2.7.xx та 3.5.xx та IronPython 2.7.xx. Я використовую Eclipse для розробки та вибираю шлях python при налагодженні. Під час запуску сценарію я просто задаю шлях до версії інтерпретатора, яку я хочу використовувати. Оновлення 3.5.0 до 3.5.3 пропонує простий варіант оновлення віршів нової установки.
Білл Кідд

5
  • Офіційні інсталятори Python .msi призначені для заміни:

    • будь-який попередній мікро-реліз (у xyz , z - "мікро"), оскільки вони гарантовано зворотні та бінарні
    • "знімок" (побудований з джерела), установка з будь-якою мікроверсією
  • Програма встановлення знімків призначена для заміни будь-якого знімка на нижню мікроверсію.

(Див. Відповідальний код для 2.x , для 3.x )

Будь-які інші версії не обов'язково сумісні і тому встановлюються поряд з існуючими. Якщо ви хочете видалити стару версію, вам потрібно буде це зробити вручну. А також видаліть сторонні модулі, які ви мали для цього:

  • Якщо ви встановили будь-які модулі з bdist_wininstпакетів (Windows .exe), видаліть їх перед видаленням версії, або деінсталятор може не працювати належним чином, якщо у ньому є власна логіка
  • модулі, встановлені з setuptools/, pipякі перебувають у них, Lib\site-packagesможна просто видалити згодом
  • пакунки, які ви встановили на кожного користувача, якщо такі є, перебувають у них %APPDATA%/Python/PythonXY/site-packagesі їх також можна видалити

1

Я завжди просто встановлював нову версію зверху і ніколи не мав жодних проблем. Переконайтеся, що ваш шлях оновлений, щоб вказувати на нову версію.


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