Як оновити установку Python в Windows 10?


112

У мене на одній із моїх станцій LAB встановлений Python 2.7.11. Я хотів би оновити Python принаймні до 3,5.

Як мені це зробити? Чи варто віддати перевагу повністю видалити 2.7.11, а не встановити нову? Чи є спосіб її оновити? Чи є оновлення гарною ідеєю?


Можливо, ця старша публікація може вам допомогти? stackoverflow.com/questions/15102943/how-to-update-python Br.
MikeL

python2 та python3 слід трактувати як різні мови, як C # відрізняється від C ++
WhatsThePoint

Відповіді:


97

Кожна незначна версія Python, тобто будь-яка версія 3.x та 2.x, буде встановлена ​​поряд з іншими версіями на вашому комп'ютері. Лише версії патча оновлять існуючі установки.

Тож якщо ви хочете зберегти встановлений Python 2.7 навколо, просто дозвольте його та встановіть нову версію за допомогою інсталятора. Якщо ви хочете позбутися Python 2.7, ви можете видалити його до або після встановлення нової версії - різниці в цьому немає.

Поточні установки Python 3 поставляються із py.exeзапуском, який за замовчуванням встановлюється в системний каталог. Це робить його доступним у PATH, тому ви можете автоматично запускати його з будь-якої оболонки, використовуючи pyзамість pythonкоманди. Це дозволяє уникнути необхідності самостійно вводити поточну установку Python в PATH. Таким чином, ви можете легко встановити кілька установок Python поруч, не заважаючи один одному. Під час запуску просто використовуйте py script.pyзамість того, python script.pyщоб використовувати пусковий апарат. Ви також можете вказати версію, використовуючи, наприклад,py -3 або py -3.6запустити певну версію, інакше програма запуску використовуватиме поточний за замовчуванням (який зазвичай буде останнім 3.x).

За допомогою запуску ви також можете запустити сценарії Python 2 (які часто синтаксиси несумісні з Python 3), якщо ви вирішите зберегти установку Python 2.7. Просто використовуйтеpy -2 script.py для запуску сценарію.


Що стосується пакетів PyPI, то кожна установка Python має власну папку, в яку встановлені модулі. Отже, якщо ви встановите нову версію і хочете використовувати модулі, встановлені для попередньої версії, вам доведеться спочатку встановити їх для нової версії. Поточні версії інсталятора також пропонують вам встановити pip; він увімкнено за замовчуванням, тому у вас уже є pipдля кожної установки. Якщо ви явно не додасте встановлення Python до PATH, ви не можете просто використовувати pip. На щастя, ви також можете просто використовувати py.exeдля цього пусковий механізм: py -m pipзапуски pip. Так, наприклад, щоб встановити Beautiful Soup для Python 3.6, ви можете запустити py -3.6 -m pip install beautifulsoup4.


1
Як би ви порадили це зробити на станції, яку я зараз використовую для розробки сценаріїв? До речі, у мене є 3.5.2 (Windows 7 64-розрядна)
Moshe S.

1
Просто встановіть нову версію поруч. Не потрібно видаляти стару версію. Наявність старої версії може навіть допомогти вам перенести існуючі сценарії з Python 2 на Python 3, тому ви все одно можете запускати оригінальні.
ткнути

1
Інсталятор дасть вам можливість встановити PATH для вас, тому вам, можливо, не доведеться робити це вручну. І так, ваш IDE потрібно оновити.
ткнути

1
також py -3.7-64абоpy -3.7-32
noobninja

1
Примітка: py це запуск Python для Windows . Або дивіться PEP 397, який це визначає. Він не встановлюється для Linux / Mac.
LightCC

39

Встановлення / оновлення Python за допомогою диспетчера пакетів Chocolatey Windows

Скажімо, у вас є Python 2.7.16:

    C:\Windows\system32>python --version
    python2 2.7.16

... і ви хочете оновити до (теперішньої) версії 3.xy. Існує простий спосіб встановити паралель установку Python 3.xy за допомогою інструменту управління пакетами Windows.

Тепер, коли сучасна Windows має управління пакетами, подібно до того, як дистрибутиви Debian Linux мають apt-get, а RedHat має dnf: ми можемо працювати так, щоб він працював на нас! Це називається Chocolatey .

Що таке Шоколад?

Chocolatey - це інструмент командного рядка, написаний на скриптах, який базується на .NET 4.0 та диспетчері пакетів нутетів, занесених у Visual Studio.

Якщо ви хочете дізнатися про Chocolatey та навіщо його використовувати, що дехто, читаючи це, може виявитись особливо корисним, перейдіть на сторінку https://chocolatey.org/docs/why

Встановлення Chocolatey

Щоб отримати менеджер пакунків Chocolatey, ви дотримуєтеся процесу, описаного на https://chocolatey.org/docs/installation#installing-chocolatey ,

Я підсумую це для вас тут. В основному є два варіанти: використання підказки cmd або використання запиту PowerShell.

Встановлення Шоколаду Шоп

Запустіть адміністративний командний рядок. У Windows 10 для цього:

  • Windows+R
  • Тип cmd
  • Натисніть ctrl+ shift+Enter

Якщо у вас немає прав адміністратора в системі, перейдіть на веб-сайт Chocolatey . Можливо, вам не пощастить, і ви можете виконати обмежену локальну установку, але я не висвітлю це тут.

  • Скопіюйте рядок нижче у свій командний рядок та введіть Enter:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

Chocolatey буде завантажено та встановлено для вас як нижче:

Getting latest version of the Chocolatey package for download.
Getting Chocolatey from https://chocolatey.org/api/v2/package/chocolatey/0.10.11.
Downloading 7-Zip commandline tool prior to extraction.
Extracting C:\Users\blahblahblah\AppData\Local\Temp\chocolatey\chocInstall\chocolatey.zip to C:\Users\blahblahblah\AppData\Local\Temp\chocolatey\chocInstall...
Installing chocolatey on this machine
Creating ChocolateyInstall as an environment variable (targeting 'Machine')
  Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'
WARNING: It's very likely you will need to close and reopen your shell
  before you can use choco.
Restricting write permissions to Administrators
We are setting up the Chocolatey package repository.
The packages themselves go to 'C:\ProgramData\chocolatey\lib'
  (i.e. C:\ProgramData\chocolatey\lib\yourPackageName).
A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'
  and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

Creating Chocolatey folders if they do not already exist.

WARNING: You can safely ignore errors related to missing log files when
  upgrading from a version of Chocolatey less than 0.9.9.
  'Batch file could not be found' is also safe to ignore.
  'The system cannot find the file specified' - also safe.
chocolatey.nupkg file not installed in lib.
 Attempting to locate it from bootstrapper.
PATH environment variable does not have C:\ProgramData\chocolatey\bin in it. Adding...
WARNING: Not setting tab completion: Profile file does not exist at 'C:\Users\blahblahblah\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.
Chocolatey (choco.exe) is now ready.
You can call choco from anywhere, command line or powershell by typing choco.
Run choco /? for a list of functions.
You may need to shut down and restart powershell and/or consoles
 first prior to using choco.
Ensuring chocolatey commands are on the path
Ensuring chocolatey.nupkg is in the lib folder

Або Вихід УМК рядки або введіть наступну команду , щоб перезавантажити змінні оточення:

refreshenv

Установка шоколаду PowerShell

Якщо ви віддаєте перевагу PowerShell перед записом cmd, ви можете це зробити прямо звідти, проте вам доведеться сказати PowerShell запустити правильну політику виконання сценарію, щоб змусити його працювати. У Windows 10 найпростіший спосіб, який я знайшов, це набрати наступне на панелі пошуку Cortana поруч із кнопкою Windows:

PowerShell.exe

Далі клацніть правою кнопкою миші на вибір "Найкраща відповідність" у меню, яке з'явиться, і виберіть "Запустити як адміністратор"

Тепер, коли ви перебуваєте в PowerShell, сподіваємось, що працюєте з правами адміністратора, виконайте такі дії, щоб встановити Chocolatey:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

PowerShell завантажить Chocolatey для вас і запустить інсталяцію. Це займає лише кілька моментів. Це виглядає точно як установка CMD, за винятком , можливо деякі фантазії кольорові текст.

Або вихід PowerShell або введіть наступну команду , щоб перезавантажити змінні оточення:

refreshenv

Оновлення Python

Команда choco така ж, як ви використовуєте PowerShell або cmd-рядок. Запустіть улюбленого, користуючись інструкціями, як описано вище. Я буду використовувати підказку cmd адміністратора:

C:\WINDOWS\system32>choco upgrade python -y

По суті, шоколадний скаже вам "Ей, Python не встановлений", оскільки ви надходите з 2.7.x, і він розглядає 2.7 версію як абсолютно окрему. Він тільки збирається дати вам саму останню версію, 3.xy (станом на момент написання даної статті 3.7.2, але це зміниться протягом декількох місяців):

Chocolatey v0.10.11
Upgrading the following packages:
python
By upgrading you accept licenses for the packages.
python is not installed. Installing...

python3 v3.x.y [Approved]
python3 package files upgrade completed. Performing other installation steps.
Installing 64-bit python3...
python3 has been installed.
Installed to: 'C:\Python37' 
  python3 can be automatically uninstalled.
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 The upgrade of python3 was successful.
  Software installed as 'exe', install location is likely default.

python v3.x.y [Approved]
python package files upgrade completed. Performing other installation steps.
 The upgrade of python was successful.
  Software install location not explicitly set, could be in package or
  default install location if installer.

Chocolatey upgraded 2/2 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Або вийдіть із запиту cmd / Powershell і введіть його знову, або використовуйте refreshenv, а потім введіть py --version

C:\Windows\System32>refreshenv
Refreshing environment variables from registry for cmd.exe. Please wait...Finished..

C:\Windows\system32>py --version
Python 3.7.2

Зауважте, що найновіша установка Python тепер перейде, коли ви введете Python у командному рядку. Ви можете запустити будь-яку версію, скориставшись такими командами:

py -2
Python 2.7.16 (v2.7.16:413a49145e, Mar  4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

C:\>py -3
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>exit()
C:\>

Звідси я пропоную вам скористатися утилітою Pyphon для встановлення будь-яких потрібних вам пакетів. Наприклад, скажімо, що ви хотіли встановити Flask. Команди, розташовані нижче, спочатку оновлюють pip, а потім встановлюють Flask

C:\>py -3 -m pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/d8/f3/413bab4ff08e1fc4828dfc59996d721917df8e8583ea85385d51125dceff/pip-19.0.3-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 1.6MB/s
Installing collected packages: pip
  Found existing installation: pip 18.1
    Uninstalling pip-18.1:
      Successfully uninstalled pip-18.1
Successfully installed pip-19.0.3

c:\>py -3 -m pip install Flask

... зробить трюк. Щасливого пітонінгу!


Коротка версія відповіді - встановити Chocolatey, а потім оновити з вашого командного рядка, потім виконати choco install python, він встановить останню версію python. Знову оновіть cmd, і вам слід запустити останній пітон зі свого cmd.
Себастьян

Отримання цієї помилки у винятку CMD та POWERSHELL, що викликає "DownloadString" з аргументом "1": "Базове з'єднання було закрито: при надсиланні сталася несподівана помилка." У рядку: 1 char: 104 + Set-ExecutionPolicy Bypass -Scope Process -Force; IEX ((System.Net.WebClient New-Object) .DownloadString <<<< ( " chocolatey.org/install.ps1 ' )) + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException
trustory

У мене є Windows 7 будь-яка допомога, як оновити до python 3 з python2, схоже, chocoaltely не працює.
довірений

38

Якщо ви оновлюєте будь-яку версію 3.xy до 3.xz (патч) Python, просто перейдіть на сторінку завантажень Python, отримайте останню версію та починайте встановлення. Оскільки у вас уже встановлений Python на вашій машині, програма встановлення запропонує вам "Оновити зараз". Натисніть на цю кнопку, і вона замінить існуючу версію на нову. Вам також доведеться перезавантажити комп'ютер після встановлення.

введіть тут опис зображення

Якщо ви переходите від 3.x до 3.y (мінор), вам буде запропоновано "Встановити зараз". У цьому випадку ви не оновлюєте, але встановлюєте нову версію Python. У вас може бути встановлена ​​кілька версій на вашій машині. Вони будуть розміщені в різних каталогах. Коли у вас на машині є більше однієї версії Python, вам потрібно буде використовувати py lanucher для запуску певної версії Python.

Наприклад:

пі -3,7

або

py -3,8

Переконайтеся, що на вашій машині встановлений пусковий апарат. Він буде встановлений автоматично, якщо ви використовуєте налаштування за замовчуванням інсталятора Windows. Ви завжди можете перевірити це, якщо натиснути посилання "Налаштувати встановлення" у вікні встановлення.

Якщо на вашій машині встановлено кілька версій Python, і у вас є проект, який використовує попередню версію Python, використовуючи віртуальне середовище, наприклад (venv), ви можете оновити Python саме в цьому venv, використовуючи:

python -m venv - оновіть "ваш віртуальний шлях середовища"

Наприклад, у мене в віртуальному середовищі ./venv є Python 3.7, і я хотів би оновити venv до Python 3.8, я б зробив наступне

python -m venv --поновлення ./venv


1
@ MosheS.you можете отримати список застарілих пакетів, скориставшись такою командою: pip list - актуалізований, а потім оновіть кожен пакет python -m pip install - оновіть <ваш пакет>
Влад Безден

5
Перехід від 3.7.2 до 3.7.4 (64 біт) у Windows 10 Я цього не бачу, я бачу "Встановити зараз" там, де ви бачите "Оновити зараз"
dumbledad

3
Щойно я перейшов з 3.7.3 до 3.7.5 і отримав повідомлення "Оновити зараз". Якби я спробував оновити з 3.7.3 до 3.8, тоді я отримав би "Встановити зараз".
Tiago Martins Peres

1
@Suncatcher ви праві, саме так я описав розділ "Якщо ви хочете оновити з 3.x до 3.y тоді ...". Прочитайте вище.
Влад Безден

1
@Suncatcher, дякую за відгук. Я оновив опис.
Влад Безден

4

Python 2.x і Python 3.x різні. Якщо ви хочете завантажити нову версію Python 2, ви можете просто завантажити та встановити нову версію.

Якщо ви хочете встановити Python 3, ви можете встановити Python 3 окремо, а потім змінити шлях для Python 2.x на Python 3.x на панелі керування> Усі елементи панелі керування> Система> Додаткові параметри системи> Змінні середовища.


Я вважаю за краще повністю видалити Python 2.7.11, оскільки не планую його підтримувати. Тому я повинен повністю його зняти. Правильно? У "Програмах та функціях" Python не відображався, тому я не знаю, як його видалити. Чи потрібно використовувати піп, і як? Це гарна ідея просто видалити папку Python? Що з усіма старими пакунками, які були встановлені разом із ним (якщо такі були), як я можу їх також видалити?
Моше С.

@MosheS. Я не думаю, що це дійсно займає стільки місця, але якщо ти хочеш прибирати, то будь-якими способами. Усі вони повинні бути в одній папці, яку ви, ймовірно, можете видалити з панелі управління Програма та функції. І мій Python 2.7, і 3.4 є там. Видалення звідти видалить усі пакунки Якщо ви його справді не можете знайти, спробуйте просто видалити всю папку. Коли ви завантажуєте Python 3, і якщо він не працює, перейдіть до редагування контуру, як я відповів вище, це, швидше за все, буде основною проблемою, якщо вона є.
Джуліан Чан

3

У 2019 році можна встановити за допомогою шоколаду . Відкрийте свій cmd або powerhell, наберіть "choco install python".


-1

Найпростіший спосіб встановити останню версію Python (якщо ви видалили інші версії) - це ввести Pythonв PowerShell.

Відкриється магазин Microsoft, і ви натискаєте Getкнопку.

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