如何在Windows 10中升级Python安装?

2024-04-25 13:08:58 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

Python的每个小版本,即3.x和2.x版本,都将与计算机上的其他版本并行安装。只有修补程序版本才能升级现有安装。

因此,如果您想保留已安装的Python2.7,那么就让它使用安装程序安装一个新版本。如果您想摆脱Python2.7,可以在安装新版本之前或之后卸载它,这没有区别。

当前的Python 3安装附带py.exe启动程序,默认情况下,该启动程序安装在系统目录中。这使得它在路径中可用,因此您可以使用py而不是python作为命令从任何shell自动运行它。这避免了您必须自己将当前的Python安装放到PATH中。这样,您就可以轻松地同时安装多个Python,而不会相互干扰。运行时,只需使用py script.py而不是python script.py即可使用启动程序。您还可以使用例如py -3py -3.6来指定版本以启动特定版本,否则启动程序将使用当前默认值(通常是最新的3.x)。

如果决定继续安装Python2.7,也可以使用启动程序运行Python2脚本(这些脚本的语法通常与Python3不兼容)。只需使用py -2 script.py启动脚本。


对于PyPI包,每个Python安装都有自己的文件夹,其中安装了模块。因此,如果您安装了新版本,并且希望使用为以前版本安装的模块,则必须先为新版本安装这些模块。当前版本的安装程序还允许您安装pip;它在默认情况下是启用的,因此每次安装都已经有pip。除非显式地将Python安装添加到路径中,否则不能只使用pip。幸运的是,您还可以简单地使用py.exe启动程序来执行以下操作:py -m pip运行pip。例如,要为Python 3.6安装漂亮的Soup,可以运行py -3.6 -m pip install beautifulsoup4

使用chocobely Windows包管理器安装/升级Python

假设您有Python2.7.16:

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

…并且您希望升级到(当前的)3.x.y版本。有一种简单的方法可以使用Windows包管理工具安装Python 3.x.y的并行安装。

现在,现代的Windows有了包管理,就像Debian Linux发行版有了apt-get,RedHat有了dnf:我们可以让它为我们工作!它叫巧克力。

巧克力是什么?

chocobaty是一个可编写脚本的命令行工具,它基于.NET 4.0和烘焙到Visual Studio中的nuget包管理器。

如果你想了解巧克力以及为什么要使用它,这里的一些读者可能会发现它特别有用,请转到https://chocolatey.org/docs/why

装巧克力

要获取巧克力包管理器,请遵循https://chocolatey.org/docs/installation#installing-chocolatey中描述的过程

我在这里给你总结一下。基本上有两个选项:使用命令提示符或使用PowerShell提示符。

CMD提示巧克力安装

启动管理命令提示符。在Windows 10上,要执行此操作:

  • 窗口+R
  • 键入cmd
  • 按ctrl键+shift键+回车键

如果您对系统没有管理员权限,请转到Chocolatey website。您可能不是完全不走运,可以执行有限的本地安装,但我这里不介绍。

  • 将下面的字符串复制到命令提示中,然后键入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"

巧克力将下载并安装如下:

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上,我找到的最简单的方法是在Windows按钮旁边的Cortana搜索栏中键入以下内容:

PowerShell.exe

接下来,右键单击弹出菜单中的“最佳匹配”选项,然后选择“以管理员身份运行”

现在您在PowerShell中,希望以管理员权限运行,请执行以下操作以安装chocolay:

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

PowerShell将为您下载巧克力并启动安装。只需要几分钟。它看起来和CMD的安装完全一样,可能会保存一些花哨的彩色文本。

要么退出PowerShell,要么键入以下命令重新加载环境变量:

refreshenv

升级Python

无论使用PowerShell还是命令提示符,choco命令都是相同的。使用上面的说明启动您的收藏夹。我将使用管理员命令提示符:

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

从本质上讲,chocobaty会告诉你“嘿,Python还没有安装”,因为你来自2.7.x,它把2.7版本视为完全独立的。只有才会给你最新的版本,3.x.y(截至本文撰写时,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:\>

从这里开始,我建议您使用Pythonpip实用程序来安装您需要的任何软件包。例如,假设您想安装烧瓶。下面的命令首先升级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

…会成功的。快乐的Python!

如果要升级任何3.x Python版本,只需转到Python downloads page获取最新版本并开始安装。因为您已经在机器上安装了Python,所以安装程序会提示您“立即升级”。单击该按钮,它将用新版本替换现有版本。安装后还必须重新启动计算机。

enter image description here

如果要从3.x升级到3.y,系统将提示您“立即安装”。在本例中,您不是在升级,而是在安装新版本的Python。您的计算机上可以安装多个版本。它们将位于不同的目录中。当机器上有多个Python版本时,需要使用py lanucher来启动特定版本的Python。

例如:

py -3.7

或者

py -3.8

确保您的计算机上安装了py launcher。如果您使用的是windows安装程序的默认设置,它将自动安装。如果单击安装窗口上的“自定义安装”链接,则始终可以选中它。

如果您的计算机上安装了多个Python版本,并且您有一个使用虚拟环境(例如(venv))的Python早期版本的项目,则可以使用以下方法升级该venv中的Python:

python -m venv --upgrade "your virtual environment path"

例如,我的./venv虚拟环境中有Python 3.7,我希望将venv升级到python3.8,我将执行以下操作

python -m venv --upgrade ./venv

相关问题 更多 >