如何配置 Visual Studio Windows 10 中的代码以忽略 shebangs 并使用 Python 解释器路径?

How to configure Visual Studio Code in Windows 10 to disregard shebangs and use a Python interpreter path?

我有一个 Python 项目,旨在 运行 Linux:

#!/usr/bin/env python3
def hello(a: str):
    print(f"bonjour {a}")

hello("SO")

当我在 Windows 上使用 Visual Studio 代码和 运行 编辑此代码时,我得到

[Running] /usr/bin/env python3 "d:\Seafile\dev\dev-perso\domotiqueNG\services\dispatcher\hello.py"
The system cannot find the path specified.

如果 Visual Studio 代码打算实际使用 shebang,错误是可以理解的:envpython3 都不存在。

我应该如何配置 Visual Studio 代码,以便它不考虑 shebang 而是使用 C:\Python36\python.exe 可执行文件?


我在设置 Python: Python Path 中找到并将其设置为我的可执行文件,但在存在 shebang 的情况下,shebang 优先

我删除了 shebang 以尝试该版本(这不是解决方案,我需要将 shebang 保留在那里)并且有趣的是我得到了:

[Running] python -u "d:\Seafile\dev\dev-perso\domotiqueNG\services\dispatcher\hello.py"
  File "d:\Seafile\dev\dev-perso\domotiqueNG\services\dispatcher\hello.py", line 2
    def hello(a: str):
               ^
SyntaxError: invalid syntax

这很奇怪,因为它似乎暗示编译器无法识别 Python 3.6 语法,而 Python 3.6 是路径中的语法(还有另外两个 Python 2 隐藏在计算机上的可执行文件,甚至不在路径中)。

Visual Studio 代码建议将使用 3.6:

所以我怀疑我可以调整 Python 可执行路径的某个设置。

shebang

是否使用shebang可以在设置中配置:搜索shebang,然后Code-runner: Respect Shebang

Python

的版本

当通过 CtrlF5 运行 代码时,使用了正确的解释器。

当运行它通过AltCtrlN (Run Code), 用错了

我检查过

import sys
print(sys.executable)

并且出于某种原因显示了 Platform.io 解释器。我不知道它是如何在 Run Code 下结束的,但禁用 Platform.io 有所帮助。 AltCtrlNCtrlF5现在使用正确的解释器。

我仍然不知道为什么两种启动脚本的方式使用不同的解释器,但至少现在问题已经解决了。