如何在Visual Studio Code中更改Python版本?

78
这是我的设置:
  1. 用户设置

{
    "atomKeymap.promptV3Features": true,
    "editor.multiCursorModifier": "ctrlCmd",
    "editor.formatOnPaste": true,
    "python.pythonPath": "python3",
    "command": "python3",
}
  • 工作区设置

    {
        "python.pythonPath": "${workspaceFolder}/env/bin/python3.6",
        "git.ignoreLimitWarning": true
    }
    
  • tasks.json

  • {
        // See https://go.microsoft.com/fwlink/?LinkId=733558
        // for the documentation about the tasks.json format
        "version": "0.1.0",
        "command": "python3",
        "isShellCommand": true,
        "args": ["${file}"],
        "showOutput": "always"
    }
    

    如果我使用调试控制台,版本和路径是正确的: debug

    但无论我做什么,输出始终默认为“python2.7”。 output

    我该如何解决这个问题?


    1
    你的解释器设置在左下角显示什么?如果它没有指向你期望的解释器,那么请点击它并更改。如果是正确的解释器,请提交一个问题报告。 - Brett Cannon
    在我的OSx上,我在VS Code中的默认解释器是zsh,并默认为2.7。将解释器更改为3.6并在VS Code中打开bash后,一切都很好。 - kevin_theinfinityfund
    18个回答

    105
    1. 在“视图”菜单下选择“命令面板... F1”(或按下F1键)。

    2. 输入“Python: 选择解释器”。

    3. 选择默认使用的Python版本[1]。


    你可以放心忽略“推荐”提示,通常这只是一个基本系统,没有你自定义的软件包。

    @Don,对我来说它的工作效果符合预期。我不知道我应该提交什么问题。 - Natsfan
    63
    我尝试了这个方法,但它没有起作用。当我在终端中检查Python版本时,它仍然显示与我选择的解释器不同的版本,即使我已经启动了一个新的终端实例。 - Azurespot
    2
    我搜索了数小时如何让我的Python代码在VSCode上运行,你的答案解决了我的问题,非常感谢! - artSx
    14
    我已经尝试了三次,但它没有起作用。无论答案是什么,都不是“Python:选择解释器”。我已经选择了Python 3.8,但代码选择的是版本3.7.2。我已经重新启动了计算机,但它仍然选择3.7.2。因此,任何解决方案都不只是使用命令面板。我可以通过复制Code所说的内容并在命令行上运行来找到正确的版本。但是,Code不会运行它所说的命令。 - RichMeister
    1
    @Azurespot 终端就是终端。您需要在IDE中单击播放或调试按钮,以便完整路径的Python解释器执行源代码。如果您在Visual Studio Code > View > Command Palette (CTRL+SHIFT+P) > Python: Select Interpreter中选择了Python 3.6,则播放(执行)按钮将开始使用该解释器的完整路径,后跟*.py文件。如果您想要特定版本,请复制python.exe文件的完整路径,并在其后添加“--version”以获取版本。 - Entree
    显示剩余5条评论

    23

    更新。首先,请阅读底部的更新#1部分。

    (请先尝试更新#1) 从您的屏幕截图中,我看到您正在使用Code Runner扩展程序。我猜这就是您启动程序的方式。 我不知道它是如何内部工作的,但是将以下行添加到Code-Runner扩展程序的setting.json文件中可以解决问题:

    "code-runner.executorMap.python": {...
    "python": "python3 -u",
    ...}
    

    在 Code-Runner 的 GitHub 存储库中找到了它:https://github.com/formulahendry/vscode-code-runner/issues/366

    如果你键入“python --help”,你会看到“-u”标志代表“无缓冲二进制 stdout 和 stderr...”,不知道为什么这里很重要。

    更新 #1。进一步变得不太方便 - 我开始使用 python 的虚拟环境,上面的解决办法无法启动这些环境,因为 python3(符号链接)总是链接到同一个 python 环境。

    解决方案是使用 Code-Runner 支持的自定义参数,所以应该将其 settings.json 中的“python”行更改为:

    ...
    "python": "$pythonPath $fullFileName",
    ...
    

    谢谢 - 在我的 Mac 上,这对我有用,因为默认安装了 Python 2.x。 - Sam Vanhoutte
    谢谢!这在Linux上运行,因为默认安装了Python2作为“python”。 - Heisenberg
    谢谢,我把我的Python版本改成了3.9,现在它运行得非常好。你不知道我有多少次把解释器改成py3.9并且因为沮丧而猛敲键盘。该死的代码运行器。我的电脑上有5个Python安装包,哈哈。 - Humble_Snowman
    谢谢!之前我一直很苦恼为什么调试的“运行”按钮使用了正确的解释器(Python3虚拟环境中的),但是普通的“运行”却使用了它找到的第一个解释器(Python2)。 - strobelight

    15

    这里有几个答案解释了好的方法,但以下是我推荐的前两个。

    1)底部屏幕导航(易于访问)

    • 我发现这是最快的方法;但是,对于首次使用的用户来说,它并不总是可用的。如果您已经在VS Code中使用Python,这通常是到达Python:选择解释器菜单的最简单方法。在屏幕左下角,寻找"Python X.X.X"。这是当前检测/配置的Python版本,用于您的项目,单击它将带您进入解释器菜单以更改您正在使用的Python版本。在撰写本文时,我使用的是Python 3.9.1,如下所示:

    Visual Studio Code Snippet

    2) 命令面板

    • 正如@jmh在他的回答中所指出的,您也可以使用“视图”选项卡导航到命令面板。在命令面板中搜索Python: 选择解释器,以打开上述相同的菜单。

    如果您仍然遇到问题,还有一个VS Code入门指南,可以帮助您设置虚拟环境和/或选择支持所需语言的不同Python解释器:https://code.visualstudio.com/docs/python/python-tutorial

    祝您编码愉快!


    这应该是最终的答案。 - Said Torres
    只想提醒一下,在我的VS Code中,这个出现在右侧,紧挨着语言模式和其他与文本文件相关的选项卡。 - Tomáš Zato
    对我来说不起作用(它以某种方式列出了我使用特定版本的Python的一些脚本 https://i.imgur.com/dnl0x2o.png ,选择3.6并没有改变任何东西,它仍然是3.9)。 - undefined
    嘿 @JinSnow,想看看是否通过点击这个链接可以进一步帮助你?如果安装了各种脚本,你可能需要考虑创建一个虚拟环境或安装不同的解释器来满足你所需的版本。链接地址:https://code.visualstudio.com/docs/python/python-tutorial - undefined

    12

    Tot的答案对我在Windows 10上起了作用,但做了一些修改。

    1. 文件->首选项->设置
    2. 在搜索栏中输入"python.pythonPath"。
    3. 将其更改为您通常在命令行中运行Python的内容。如果您已设置Path环境变量,那就是python。否则,它很可能是可执行文件的完整路径。

    这个设置还存在吗?我安装了Python扩展,但是看不到它。 - starball

    8
    这个解决方案适用于Mac和Linux:
    要将Python版本从2.7更改为3,请执行以下操作:
    1. 在Vscode中点击文件 > 首选项 > 设置。

    2. 在右侧点击...(三个点),然后选择(打开settings.json)

    3. 在搜索栏中输入code-runner.executorMap。

    4. 您只能更改右侧的设置。

    5. 在最后一个设置后面键入逗号,然后是 "code-runner.executorMap",然后按Enter,这将复制默认文件中的所有设置。

    6. 查找“python”,并将其旁边的命令更改为“python3”。

    7. 保存更改,您就可以开始使用了。


    如果在你的第一个点之前添加一个新行(按回车键创建一个空行),那么你将会看到输出格式为列表,而不是其他格式。这也是你预期的效果。 - Gavin

    8

    VS Code终端使用不同的Python解释器

    默认情况下,它不知道您的解释器,并将使用操作系统中的默认.bashrc或等效项进行初始化。

    我在2021年2月的一个问题中找到了两个相关的设置。勾选第二个选项Python > Terminal: Activate Environment可以自动激活虚拟环境:

    Activate Python Environment in VS Code

    settings.json中,它被称为"python.terminal.activateEnvironment": true
    更新(2021年8月8日): 今天当我在Windows上从VS Code打开终端时,它自动插入了一行代码& C:/Users/[UserName]/[venv]/Scripts/Activate.ps1来激活与所选Python解释器关联的适当环境! 看起来前面提到的设置现在是默认行为。 虽然2021年7月发布说明(版本1.59)中有关于终端行为的更改,但我没有看到明确提到虚拟环境激活的内容。
    新行为在“环境和终端窗口”中有文档记录。

    "python.pythonPath" 已经被弃用 (链接1)

    因此,大多数以前的答案已过时。 请改用 "python.defaultInterpreterPath"

    2021.6.0(2021年6月16日)
    5. 在 pythonDeprecatePythonPath 实验中,在工作区级别添加了 python.defaultInterpreterPath 设置。(#16485)
    8. 当在 pythonDeprecatePythonPath 实验中时,显示 python.pythonPath 弃用提示。(#16485)

    2020.7.0(2020年7月16日)
    9. 在 Deprecate PythonPath 实验中,提醒用户我们已删除其工作区设置中的 pythonPath。(#12533)

    2020.5.0 (2020年5月12日)
    6. 如果在DeprecatePythonPath实验中,将现有的python.pythonPath设置值一次性转移到新的Interpreter存储中。 (#11052)
    8. 添加提示,询问用户在Deprecate PythonPath实验中是否删除他们的工作区设置中的python.pythonPath键。 (#11108)
    12. 将用于在launch.json中引用设置中设置的解释器路径的字符串${config:python.pythonPath}重命名为${config:python.interpreterPath}。 (#11446)

    2020.4.0 (2020年4月20日)
    13. 添加了一个用户设置python.defaultInterpreterPath,在Deprecate PythonPath实验中设置默认的解释器路径。 (#11021)

    如果您希望为所有工作区设置默认的Python解释器,请使用Ctrl+Shift+P打开设置,选择Preferences: Open User Settings并搜索Python: Default Interpreter Path。否则,如果您只想为当前工作区设置它,请改用Preferences: Open Workspace Settings

    VS code settings for default python interpreter

    在您的情况下,您希望将其设置为${workspaceFolder}/env/bin/python3.6。 如果您直接编辑settings.json而不是使用GUI:
    {  
      "python.defaultInterpreterPath": "${workspaceFolder}/env/bin/python3.6"
    }  
    

    详细的指导说明可以在文档"手动指定解释器"中找到,其中包括使用环境变量作为解释器路径的方法。

    7
    在VSCode中,有两个Python路径:
    1. 当你使用右上角的绿色播放按钮运行Python代码时使用的路径。可以在CTRL+SHIFT+P Python: Select Interpreter下设置此路径。

    ExecutePythonCode

    2. 在终端中输入"python"时使用的路径,这在Windows 10的"环境变量"中设置(类似的位置在Linux和Mac下也有)。在Windows 10中,您可以选择多个Python版本,通常位于C:\Users\YourName\AppData\Local\Programs\Python\Python##。只需确保相应更改"C:\Users\YourName\AppData\Local\Programs\Python\Python##"和"C:\Users\YourName\AppData\Local\Programs\Python\Python##\Scripts"的环境变量即可。这还会影响您使用的pip版本,即属于Python 3.8还是Python 3.9的pip。我认为,在VSCode中的终端通常指默认终端。因此,在Windows 10中在CMD行中输入"python"时,它应该与VSCode终端版本相同。
    为了保持一致,您应确保"Python:选择解释器"和系统环境变量指向相同的Python版本。
    Windows 10的额外福利。如果您没有设置环境变量,并且在VSCode终端中键入'python',它将指向C:\ Users \ YourName \ AppData \ Local \ Microsoft \ WindowsApps \ python.exe,这只是打开Windows AppStore中的python链接。

    4
    晚了一步,如果你发现在VsCode中设置Python版本很困难,
    如果解释器没有显示envname/bin/python或者任何你想要的路径,那么请转到
    1. VSCODE主页面 -> 文件 -> 首选项 -> 设置 2. 选择右侧的... 3. 你会看到用户设置、工作区设置和你的应用程序名称设置。点击你的应用程序名称。 4. "python.pythonPath": "/home/Jhon/AllWorksUbuntu/Projects/VX-350/envname/bin/python" 5. 修改上述内容以设置正确的路径。这样就可以了!

    3

    对我来说有效(Linux用户);

    假设您的系统中安装了其他Python版本:

    1. 关闭旧终端
    2. 打开一个新终端
    3. 在新终端中,不要写“python”来选择解释器,而应该写“python3”或“python3.8”

    似乎只输入“python”将始终使用Python 2。


    3

    更新@Isabella的回答,使用当前的VSCode 1.65.1和当前的Python启动器,您可以使用py -version,例如py -3.8

    因此,您可以创建一个名为.vscode的文件夹,其中包含一个名为settings.json的单个文件,其中包含以下内容:

    {
      "python.defaultInterpreterPath": "py -3.8",
    }
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接