如何在 Windows 中设置默认 Python 版本?

2025-02-17 09:25:00
admin
原创
93
摘要:问题描述:我在 Windows 7 上安装了Python 2.6并Python 3.1设置了环境变量:path = d:python2.6。当我运行 时python,cmd它显示 Python 版本 2.6,这正是我想要的! 但是,当我在 bat 文件中编写脚本并运行它时,显示的 Python 版本是 3....

问题描述:

我在 Windows 7 上安装了Python 2.6Python 3.1设置了环境变量:path = d:python2.6

当我运行 时pythoncmd它显示 Python 版本 2.6,这正是我想要的!

但是,当我在 bat 文件中编写脚本并运行它时,显示的 Python 版本是 3.1。

import sys
print (sys.version)

这里发生了什么事?


解决方案 1:

如果您安装了两个版本,情况就是这样。

转到此电脑右键单击​​ →单击属性高级系统设置

您将看到系统属性。从这里导航到高级选项卡 -> 单击环境变量

您将看到上半部分是用户变量,下半部分系统变量

检查系统变量并双击路径编辑路径)。

检查 Python 的路径(您希望运行,即 Python 2.x 或 3.x)并将其移动到路径列表的顶部。

重新启动命令提示符,现在当您检查 Python 的版本时,它应该正确显示所需的版本。

解决方案 2:

Python 安装程序会安装适用于 Windows 的 Python Launcher。此程序 ( py.exe) 与 Python 文件扩展名相关联,并查找“shebang”注释以指定要运行的 Python 版本。这允许多个版本的 Python 共存,并允许 Python 脚本明确指定要使用的版本(如果需要)。如果未指定,则默认使用当前架构(x86 或 x64)的最新 Python 版本。此默认值可以通过py.ini文件或PY_PYTHON环境变量进行自定义。有关更多详细信息,请参阅文档。

新版本的 Python 会更新启动器。最新版本有一个py -0选项可以列出已安装的 Python 并指示当前默认选项。 py -h列出完整的 Python 启动器选项以及 Python 选项。

以下是如何从控制台检查启动器是否正确注册:

C:>assoc .py
.py=Python.File

C:>ftype Python.File
Python.File="C:Windowspy.exe" "%1" %*

上面,.py文件与类型相关联Python.File。命令行Python.File是 Python Launcher,它安装在 Windows 目录中,因为它始终位于 PATH 中。

script.py为了使关联起作用,请使用而不是“python script.py”从命令行运行脚本,否则python将运行 而不是py。事实上,最好从 PATH 中删除 Python 目录,这样“python”就不会运行任何东西,并强制使用py

py.exe也可以使用开关运行来强制使用 Python 版本:

py -3 script.py       # select latest Python 3.X version to be used.
py -3.6 script.py     # select version 3.6 specifically.
py -3.9-32 script.py  # select version 3.9 32-bit specifically.
py -0                 # list installed Python versions (latest PyLauncher).

另外,添加.py;.pyw;.pyc;.pyoPATHEXT环境变量中,然后命令行就可以script没有扩展名。

解决方案 3:

运行“py”命令将告诉您正在运行哪个版本。如果您当前正在运行 3.x 并且需要切换到 2.x,则需要使用开关“-2”

py -2

如果你需要从 python 2.x 切换到 python 3.x,则必须使用 '-3' 开关

py -3

如果您希望将 Python 3.x 作为默认版本,则需要创建环境变量“PY_PYTHON”并将其值设置为 3。

解决方案 4:

如果您了解Environment variables并了解系统变量path,请考虑将任何较早出现的二进制文件的任何版本用作默认值。

看下面的图片,我有 3 个不同的 Python 版本,但 Python3.8将被用作默认版本,因为它比其他两个版本更早出现。(就上述图片而言,越早意味着越高!)

在此处输入图片描述

解决方案 5:

如果您是 Windows 用户并且拥有 Python 3.3 或更高版本,则您应该在您的机器上安装适用于 Windows 的 Python 启动器,这是启动所有 Python 脚本的推荐方式(无论脚本需要哪个 Python 版本)。

作为用户

  • 从命令行运行脚本时始终输入py而不是。python

  • 设置您的“打开方式...”资源管理器默认程序与C:Windowspy.exe

  • 设置命令行文件扩展名关联以使用适用于 Windows 的 Python 启动器(这将使输入成为py可选的)。在管理cmd终端中,运行:

ftype Python.File="C:Windowspy.exe" "%L" %*

ftype Python.NoConFile="C:Windowspyw.exe" "%L" %*

  • 通过设置环境变量来设置您喜欢的默认版本PY_PYTHON(例如PY_PYTHON=3.11)。您可以通过键入来查看您的默认python版本py。您还可以设置PY_PYTHON3PY_PYTHON2指定默认的python 3和python 2版本(如果您有多个)。

  • 如果需要运行特定版本的 Python,可以使用py -M.m(其中M是主版本,m是次版本)。例如,py -3将运行任何已安装的 Python 3 版本。

  • 使用 列出已安装的 Python 版本py -0

作为编剧

  • 在脚本顶部添加一行 shebang,指示所需的 Python 主版本号。如果脚本与任何其他次版本不兼容,请同时添加次版本号。例如:

#!/usr/bin/env python3

注意:(请参阅此问题)如果python3不适合您,请确保您已经从 Windows 应用商店安装了 python(例如通过winget install --id 9NRWMJP3717K,因为 winget 包Python.Python.3.11似乎不包含python3.exe)。

  • 您也可以使用 shebang line 来指示虚拟环境(参见下面的 PEP 486)。


参见

  • PEP 397——适用于 Windows 的 Python 启动器

  • PEP 486——让 Python 启动器感知虚拟环境

  • Windows 版 Python 启动器 - 用户指南

解决方案 6:

原始帖子请参阅此处

;
; This is an example of how a Python Launcher .ini file is structured.
; If you want to use it, copy it to py.ini and make your changes there,
; after removing this header comment.
; This file will be removed on launcher uninstallation and overwritten
; when the launcher is installed or upgraded, so don't edit this file
; as your changes will be lost.
;
[defaults]
; Uncomment out the following line to have Python 3 be the default.
;python=3

[commands]
; Put in any customised commands you want here, in the format
; that's shown in the example line. You only need quotes around the
; executable if the path has spaces in it.
;
; You can then use e.g. #!myprog as your shebang line in scripts, and
; the launcher would invoke e.g.
;
; "c:Program FilesMyCustom.exe" -a -b -c myscript.py
;
;myprog="c:Program FilesMyCustom.exe" -a -b -c

因此,在我的系统上,我py.ini在 py.exe 所在的位置创建了一个文件c:windows,其中包含以下内容:

[defaults]
python=3

现在,当您双击 .py 文件时,它将由新的默认版本运行。现在我只#! python2在旧脚本上使用 Shebang。

解决方案 7:

  1. 编辑注册表项HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionApp Pathspython.exedefault

  2. 设置打开.py文件的默认程序为python.exe

解决方案 8:

这对我有用。

如果您想使用 python 3.6 您必须将 python3.6 移至列表顶部。

这同样适用于 python2.7,如果您想将 2.7 作为默认值,请确保将 python2.7 移至列表的最顶部。

步骤 1

在此处输入图片描述

第 2 步

在此处输入图片描述

步骤 3

在此处输入图片描述

然后关闭任何 cmd 命令提示符并再次打开,它应该按预期工作。

python --version

>>> Python 3.6

解决方案 9:

在我的Windows 11 操作系统上安装了Python 版本2.7、、和时3.7,我遇到了之前建议的解决方案的问题。不过,我找到了一种适合我的简单方法。3.9`3.11`

首先,让我们了解如何使用命令设置默认的 Python 版本py。运行会提供提示,包括对位于 中的文件的py --help引用。此文件允许我们指定默认的 Python 版本。py.ini`%LOCALAPPDATA%py.ini`

要设置特定的默认 Python 版本:

  1. 打开文本编辑器或在 中创建文件%LOCALAPPDATA%py.ini

  2. 在文件中添加以下内容py.ini

[defaults]
python=3.7
  1. 保存文件。

现在,当您py --version在控制台中运行时,它应该显示指定的默认 Python 版本。

请注意以下额外注意事项:

  • 设置默认 Python 版本的目的:设置特定的默认 Python 版本有助于确保与某些依赖项的兼容性或保持跨项目的一致性。

  • 位置%LOCALAPPDATA%%LOCALAPPDATA%环境变量通常指C:Users<username>AppDataLocal。如果该py.ini文件在该位置不存在,您可以手动创建它。

解决方案 10:

这对我有用:

转至

Control PanelSystem and SecuritySystem

选择

Advanced system settings from the left panel
from Advanced tab click on Environment Variables

在系统变量部分搜索(如果不存在则创建

PYTHONPATH

并设置

C:Python27;C:Python27Scripts;

或您想要的版本

您需要重新启动CMD。

如果它仍然不起作用,您可能希望在 PATH 变量中仅保留所需的版本。

解决方案 11:

以上都不起作用,这对我有用:

ftype Python.File=C:Path    opython.exe "%1" %*

此命令应在以管理员身份启动的命令提示符中运行

警告:即使此命令中的路径设置为 python35,如果您安装了 python36,它也会将默认值设置为 python36。为防止这种情况,您可以暂时将文件夹名称从 更改为Python36xxPython36运行命令,然后删除对 Python 36 文件夹的更改。


编辑:这就是我最终做的事情:我使用 Python Launcher。https
://stackoverflow.com/a/68139696/3154274

解决方案 12:

现在 Python 3.3 已经发布,最简单的方法是使用这里描述的 py.exe 实用程序:
http ://www.python.org/dev/peps/pep-0397/

它允许您使用 UNIX 样式指令在脚本文件中指定 Python 版本。还有命令行和环境变量选项用于控制运行哪个版本的 Python。

获取此实用程序的最简单方法是安装 Python 3.3 或更高版本。

解决方案 13:

如果您使用的是 Windows,请使用 ASSOC 命令更改 Python 程序的默认 Python 版本。

assoc .py=<Python 3.1 directory>

解决方案 14:

检查系统当前正在使用哪一个:

python --version

将主文件夹位置(例如 C/ProgramFiles)和脚本位置(C/ProgramFiles/Scripts)添加到系统的环境变量中。添加 3.x 版本和 2.x 版本

路径位置在环境变量中排序。如果要使用 Python 2.x,只需将 Python 2.x 的路径放在前面,如果要使用 Python 3.x,只需将 3.x 放在前面

这使用 python 2

解决方案 15:

我遇到了同样的问题,并通过再次执行安装文件解决了它。当你这样做时,python 会自动知道你之前已经安装过它,所以它会推荐你 3 个选项!选择修改并选择所有要修改的包,然后在下一页中,你可以检查新版本的 python 是否已添加到你的环境变量中。检查它,然后执行修改。我这样做了,它解决了。

解决方案 16:

PY_PYTHON将环境变量设置为2.6(或您想要的任何版本)。重新启动终端或 cmd 并输入py -0p。旁边2.6应该有一个*,表示这是默认的 python 版本。

解决方案 17:

由于我的问题略有不同,以上方法都对我不起作用,所以我将添加对我有用的方法。我今天安装了适用于 python 3.10 的新 python 启动器,并通过它安装了该版本,但命令窗口无法识别该版本。相反,它列出了我电脑上较旧的 python3 版本。

最后,在 Windows 程序列表中,我看到我有两个版本的 Python 启动器。我卸载了旧版本,现在运行时 Python 3.10 可以正确显示py -0,并且是运行时选择的版本py

如果这是一个菜鸟答案,请原谅,我对这一切都很陌生。

解决方案 18:

我的系统安装了 Python 3.9 和 3.12。由于我无法弄清楚的原因,py启动器倾向于运行 3.9。

我创建了一个c:Windowspy.ini包含以下内容:

[defaults]
python=3.12

然后当我运行 时py,它将运行 3.12。但是,如果我运行第一行包含以下内容的 Python 程序:

#!/usr/bin/python3

或者如果我运行py -3,那么它仍然会运行 Python 3.9。

我发现的解决方案是添加另一行py.ini

python3=3.12

解决方案 19:

用于py -3.7选择要使用的特定版本,用于py --list列出已安装的版本。

例如:
py -3.7 script.py

解决方案 20:

使用SETWindows CMD中的命令临时设置当前会话的默认python。

SET PATH=C:Program FilesPython 3.5

解决方案 21:

尝试修改Windows注册表中的路径(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)。

警告:不要破坏注册表:)

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3983  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2747  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   82  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   90  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   79  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用