无法在vscod的输出窗格中使用正确的python解释器

2024-09-28 22:04:44 发布

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

1)我在macosx上安装了Python3.7.3,并通过终端确认了这一点(使用“Python3--version”)。在

2)然后我选择了vs代码中的3.7.3解释器。我可以看到这个解释器就是在底部的状态栏中使用的那个。在

3)调试控制台显示我运行的是Python3.7.3,当我在VS代码中按F5键来启动调试器中的代码时,我运行的是Python3.7.3。我也可以直接从终端运行,没有问题(python3应用程序副本). 在

import sys
print(sys.version)
^{pr2}$

问题是:

4)当我尝试打印时(系统版本)“输出”窗格仍然显示我运行的是Python2.7.10。在

当我尝试使用f字符串时,我在输出窗格中看到一个语法错误。。。终端和调试控制台都能够按预期打印字符串。在

如何使输出窗格解释python3.7而不是2.7?我在想我需要在设置.json但我不知道从哪里开始。在

这是我所有的启动.json文件。我觉得这有关系吗?在

    "version": "0.2.0",
    "configurations": [


        {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        },
        {
            "name": "Python: Remote Attach",
            "type": "python",
            "request": "attach",
            "port": 5678,
            "host": "localhost",
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "."
                }
            ]
        },
        {
            "name": "Python: Module",
            "type": "python",
            "request": "launch",
            "module": "enter-your-module-name-here",
            "console": "integratedTerminal"
        },
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "console": "integratedTerminal",
            "args": [
                "runserver",
                "--noreload",
                "--nothreading"
            ],
            "django": true
        },
        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app.py"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        },
        {
            "name": "Python: Current File (External Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "externalTerminal"
        }
    ]
}

这是我的全球设置.json公司名称:

{
    "python.pythonPath": "/Library/Frameworks/Python.framework/Versions/3.7/bin/python3",
    "liveServer.settings.donotShowInfoMsg": true,
    "files.autoSave": "afterDelay",
    "code-runner.clearPreviousOutput": true,
}

这是我的工作区.json公司名称:

{
    "folders": [
        {
            "path": "/Users/sethgory/Desktop/school/CPSC50100/Python/Week01"
        }
    ],
    "settings": {}
}

以下是我尝试使用f字符串时的输出:

[Running] python -u "/Users/sethgory/Desktop/school/CPSC50100/Python/Week01/Hello.py"
  File "/Users/sethgory/Desktop/school/CPSC50100/Python/Week01/Hello.py", line 5
    print(f"Today is {variable}")
                               ^
SyntaxError: invalid syntax

[Done] exited with code=1 in 0.909 seconds

这是我运行打印时的输出(系统版本)公司名称:

[Running] python -u "/Users/sethgory/Desktop/school/CPSC50100/Python/Week01/Hello.py"
2.7.10 (default, Oct 23 2015, 19:19:21) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)]

[Done] exited with code=0 in 2.421 seconds

当我按F5进行调试时,这是调试控制台中显示的内容(运行打印(系统版本)再说一遍):

3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) 
:undefined
[Clang 6.0 (clang-600.0.57)]

这是我在终端上调试时得到的(运行print(系统版本)再说一遍):

Week01 sethgory$ cd /Users/sethgory/Desktop/school/CPSC50100/Python/Week01 ; env PYTHONIOENCODING=UTF-8 PYTHONUNBUFFERED=1 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 /Users/sethgory/.vscode/extensions/ms-python.python-2019.3.6139/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 55179 /Users/sethgory/Desktop/school/CPSC50100/Python/Week01/Hello.py 
3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) 
[Clang 6.0 (clang-600.0.57)]

最后,当我用“python3”从终端运行程序时你好.py“,这就是我得到的(运行打印(系统版本)再说一遍):

3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) 
[Clang 6.0 (clang-600.0.57)]

到目前为止我尝试过的一些事情:

我尝试使用以下三种方法(一次一条!)在“全局”和“工作区”设置中,似乎根本没有更改行为:

我认为这是绝对的:

{
        "python.pythonPath": "/Library/Frameworks/Python.framework/Versions/3.7/bin/python3"
    }

这对于env文件夹是绝对的:

{
        "python.pythonPath": "/Users/sethgory/Desktop/school/CPSC50100/Python/Week01/env/bin/python3"
    }

这是相对于env文件夹的:

{
        "python.pythonPath": "env/bin/python3"
    }

我试图将alias python='python3'添加到我的~/.bash_配置文件中,并在终端中获得了一些新的行为。现在我可以使用“python”来引用python3(而之前我需要实际键入“3”)。但主要问题仍然存在(vs代码中的输出窗口仍然使用python2.7.2)

^{14}$

我应该指出,我确实正确安装了Python扩展。正确的解释器3.7.3显示在状态栏中。在


Tags: namepy版本env终端request系统type
1条回答
网友
1楼 · 发布于 2024-09-28 22:04:44

显然,当Python脚本运行时(默认情况下)调用Python(2)。通过在~/.bash_配置文件中添加以下行,可以对命令进行别名:

$ alias python='python3'

python命令现在将引用python3。在

如果要执行原始Python(指python2),可以转义别名(因此\python将在不接触别名的情况下启动python2)。在


您可能需要重新启动VSCode。可能在OSX下,但也需要重新启动系统(不确定,我使用的是Linux)。在

相关问题 更多 >