Как обновить Python?


135

У меня установлена ​​версия 2.7 с начала 2012 года. Я не могу прийти к единому мнению относительно того, следует ли мне полностью удалить и стереть эту версию, прежде чем устанавливать последнюю версию.

"Мягкое" - удаление старых версий? Хард-удаление / стирание старых версий? Установка поверх?

Я видел где-то специальный процесс установки / обновления с использованием «сегментирующего» метода установок 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

Обновлений Python (x, y) с июня 2015 года не было, поэтому я думаю, можно с уверенностью предположить, что он был отменен.

ОБНОВЛЕНИЕ : 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.
  • Portable 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 Навес использует 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установщики и предоставляют опции для отключения изменений Windows PATHи реестра.

      Поэтому 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 for 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: \ Python27 для 2.7.x (последняя версия 2013-07-29)
    • C: \ Python26 для 2.6.x
    • & Гр.
  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.
Марк Микофски 06

2
Спасибо за подробный ответ! В версии 2.7 установка поверх старых не работала, когда одна была 32-битной, а другая - 64-битной. Я получил две записи в «Программы и компоненты», обе указывающие на C: \ Python27. Не могли бы вы добавить к своему ответу, что люди должны перезаписывать только 32 на 32 и 64 на 64? Спасибо!
cxw 03

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 .exes), удалите их перед удалением версии, иначе программа удаления может работать некорректно, если она имеет настраиваемую логику.
  • модули, установленные с 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.