【问题标题】:How can I change the Python version in Visual Studio Code?如何在 Visual Studio Code 中更改 Python 版本?
【发布时间】:2018-06-16 13:34:50
【问题描述】:

这些是我的设置:

  1. 用户设置

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

    {
        "python.pythonPath": "${workspaceFolder}/env/bin/python3.6",
        "git.ignoreLimitWarning": true
    }
    
  3. 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"
    }
    

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

但无论我做什么,输出总是默认为“python2.7”。

我该如何解决这个问题?

【问题讨论】:

  • 左下角的解释是什么?如果这不指向您期望的解释器,请单击它并更改它。如果是,请提出问题。
  • 对于 OSx 上的我自己,我在 VS Code 中的默认解释器是 zsh,默认为 2.7。在将解释器更改为 3.6 并在 VS Code 中打开 bash 后,一切都很好。

标签: python visual-studio-code


【解决方案1】:

Windows:使用py -3.6 --version或创建虚拟环境py -3.6 -m venv venv36

【讨论】:

    【解决方案2】:

    从左下角点击python,然后vscode会导航到你系统中安装的所有python版本,然后选择适合你的那个。

    【讨论】:

      【解决方案3】:

      还有一点可能被忽略的是您在终端中使用的 shell 配置文件,您可以在其中看到想要的 python 版本与 VS Code 中的配置文件。

      1. 按住 cmd + p 并写入>Terminal: Select default profile
      2. 在全局级别选择 bash 或用于在终端中安装 python3 版本的任何内容。
      3. 关闭终端和 VS Code 然后再次打开,这一次 VS Code 会选择正确的版本

      【讨论】:

        【解决方案4】:

        VS Code 的终端使用与您选择的不同的 Python 解释器

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

        我找到了两个相关的设置from an issue in Feb 2021。 勾选第二个选项Python > Terminal: Activate Environment可以自动激活虚拟环境:

        settings.json 中称为"python.terminal.activateEnvironment": true

        更新(2021 年 8 月 8 日): 今天我在 Windows 上用 VS Code 打开终端时,它自动插入了一行代码& C:/Users/[UserName]/[venv]/Scripts/Activate.ps1 以激活与所选 python 解释器关联的适当环境! 看来上述设置现在是默认行为。 虽然release notes of July 2021 (version 1.59) 中的终端行为发生了变化,但我没有看到明确提及虚拟环境激活。

        新行为记录在此处,位于“Environments and Terminal windows”中。


        "python.pythonPath"has been deprecated

        因此,大多数以前的答案都已过时。 请改用"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 设置的现有值一次性传输到新的解释器存储。 (#11052)
        8. 在弃用 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+PPreferences: Open User Settings 打开设置并搜索 Python: Default Interpreter Path。否则,如果您只想为当前工作区设置它,请改用Preferences: Open Workspace Settings

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

        {  
          "python.defaultInterpreterPath": "${workspaceFolder}/env/bin/python3.6"
        }  
        

        详细说明可以在文档"Manually specify an interpreter" 中找到,包括使用环境变量作为解释器的路径。

        【讨论】:

          【解决方案5】:

          在 Vscode 中,您可以转到首选项 > 设置,然后在右侧菜单上单击第一个图标,即 JSON。查找“python.pythonPath”和“python.defaultInterpreterPath”并更改路径。要查找 python3 路径,请打开终端并执行python3 dummyname。实际上你会遇到一个错误,但关键是它会告诉你路径!

          【讨论】:

            【解决方案6】:

            为我工作(Linux 用户);

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

            1. 杀死旧终端
            2. 打开一个新终端
            3. 在新终端中不要写“python”来选择解释器写“python3”或“python3.8”

            看起来 put only 'python' 总是会带来 python 2。

            【讨论】:

              【解决方案7】:

              在VSCode中有两条python路径:

              1. 在 Python 代码中使用右上角的绿色播放按钮时使用的路径。这个路径可以在CTRL+SHIFT+P下设置 Python:选择Interpreter。

              1. 在终端中键入“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 的 pip 或属于 Python 3.9 的 pip。我认为 VSCode 中的终端通常与您的默认终端有关。所以在 Windows 10 中,当你在 CMD Line 中键入“python”时,它应该与 VSCode 终端的版本相同。

              出于理智的目的,您应该确保“Python:选择解释器”和系统环境变量都指向相同的 Python 版本。

              Windows 10 中的额外福利。如果您没有设置环境变量,并且在 VSCode 终端中键入“python”,它将指向 C:\Users\YourName\AppData\Local\Microsoft\WindowsApps\python .exe,它只是在 Windows AppStore 中打开 python 链接?。

              【讨论】:

                【解决方案8】:

                这里的几个答案解释了一些不错的选择,但以下是我的前 2 条建议。

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

                这是我最快的方法,但它并不总是适用于初次使用的用户。如果您已经在 VS Code 中使用 Python,这通常是访问 Python:选择解释器 菜单的最简单方法。在屏幕的左下方,查找“Python X.X.X”。这是您项目中当前检测到/配置的 Python 版本,单击它会将您带到解释器菜单以更改您正在使用的 Python 版本。在撰写本文时,我在下面的 sn-p 中使用 Python 3.9.1:

                1. 命令面板

                正如@jmh 在他的回答中所说,您还可以使用“查看”选项卡导航到命令面板。在 Command Palette 中,搜索 Python: Select Interpreter 以显示与上述相同的菜单。

                编码愉快!

                【讨论】:

                  【解决方案9】:

                  就我而言,我使用

                  检查了python版本
                  python --version
                  

                  即使我的解释器路径是 3.x,它也显示了 python 2.x。所以通过控制面板从我的电脑上卸载了python 2.x。然后它对我来说很好。

                  【讨论】:

                    【解决方案10】:

                    UPD。首先,阅读底部的更新#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”标志代表“无缓冲的二进制标准输出和标准错误......” - 不知道为什么在这里很重要。

                    更新 #1。这变得不那么方便了——我开始使用 python 的virual environments 并且上面的解决方案无法启动这些环境,因为 python3(符号链接)总是链接到同一个 python 环境。

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

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

                    【讨论】:

                    • 谢谢 - 在我的 mac 上对我有用,默认安装了 python 2.x
                    • 谢谢!这适用于默认情况下将 python2 安装为“python”的 linux。
                    • 谢谢,我把我的改成了 python3.9,现在它就像一个魅力。你不知道有多少次我把解释器改成 py3.9 并且沮丧地敲打着我的键盘。 FRIGGIN 代码运行器。我的电脑上安装了 5 个 python,哈哈。
                    • 谢谢!我正在努力弄清楚为什么调试运行按钮使用了正确的解释器(来自虚拟环境的 python3),但常规(非调试)运行使用了它找到的第一个解释器(python2)。
                    【解决方案11】:

                    只是一个前言:VS 代码运行良好(使用 Python 3.x),并且似乎出乎意料地开始使用 Python 2.7。 input() 函数不会将输入转换为字符串,这时我才意识到发生了什么。在终端窗口中输入 Python 显示 2.7 正在运行。

                    对我来说……

                    尽管“python.pythonPath”指向一个看似正确的位置(C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64),但我的一个环境变量指向 C:\Users\Mike .windows-build-tools\python27。

                    我删除了环境变量并从 Microsoft Store 重新安装了 Python 3.8,它立即安装了。我从 VS Code(它正在运行)收到一条消息,说安装了 3.8。我点击了终端/新终端,输入了 Python,它显示了 3.8 版。输入“Python xxx.py”,代码开始正常工作。

                    【讨论】:

                    • 那个环境变量是什么?
                    • @Nguaial 大概是PATH,您不应该“删除”它,但需要从列表中删除违规元素(此处为:C:\Users\Mike.windows-build-tools\python27)。
                    【解决方案12】:

                    Tot 的回答是在 Windows 10 上对我有用的方法,但做了一些修改。

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

                    【讨论】:

                      【解决方案13】:

                      如果你发现很难在 VsCode 中设置 python 版本,真的迟到的答案,

                      如果解释器没有显示 envname/bin/python 或您想要的任何所需路径,则转到

                      1. VSCODE 主页-->文件-->首选项-->设置

                      2. 选择右上角的 ...。您会看到 USER SETTINGS、WORKSPACE SETTINGS、YOURAPP_NAME_SETTINGS。点击 your_app_name。

                      3. “python.python路径”: "/home/Jhon/AllWorksUbuntu/Projects/VX-350/envname/bin/python"

                      在上面播放以设置正确的路径。你可以走了!!!

                      【讨论】:

                        【解决方案14】:

                        此解决方案适用于 Mac 和 Linux:

                        要将您的 Python 版本从 2.7 更改为 3,请执行以下操作:

                        1. 在 Vscode 中点击文件 > 首选项 > 设置。

                        2. 点击右侧的...(三个点)并选择(打开settings.json)

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

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

                        5. 在最后一个设置之后输入一个逗号然后 “code-runner.executorMap”并回车,这将复制默认文件中的所有设置。

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

                        7. 保存更改,一切顺利。

                        【讨论】:

                        • 如果您在第一个点之前添加一个新行(按 Enter 创建一个空行),您将看到输出格式正确,如您可能想要的列表
                        【解决方案15】:

                        在视图菜单下选择“显示命令托盘”。然后您可以从命令面板中选择的命令之一是“Python:选择解释器”。选择此选项将允许您选择要使用的 python 版本。

                        【讨论】:

                        • @jmh 您能否在 python 扩展存储库中为此提出问题。如果想深入了解并帮助您完成这项工作。 github.com/Microsoft/vscode-python/issues/new
                        • @Don,它按预期工作。我不知道我要提交什么问题。
                        • 我试过了,但是没有用。当我在终端中检查 python 版本时,它仍然显示与我选择的解释器不同的版本,尽管启动了一个新的终端实例。
                        • 我搜索了好几个小时如何让我的 python 代码在 vscode 上运行,你的回答让我很兴奋,非常感谢!
                        • 我已经这样做了 3 次。这是行不通的。不管答案是什么,它都不是“Python:选择解释器”。我选择了 Python 3.8。但代码选择版本 3.7.2。我已经重新启动。它仍然选择 3.7.2 。因此,无论做什么解决方案,它都不仅仅是使用命令托盘。我可以通过复制代码所说的内容并在命令行上运行它来找到正确的版本。但是代码并没有运行它说它应该运行的命令。
                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2021-12-17
                        • 2021-08-13
                        • 1970-01-01
                        • 2018-03-08
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多