我有一个旨在在Linux上运行的Python项目:
#!/usr/bin/env python3
def hello(a: str):
print(f"bonjour {a}")
hello("SO")
当我在Windows上使用Visual Studio Code编辑此代码并运行它时,我得到了
[Running] /usr/bin/env python3 "d:\Seafile\dev\dev-perso\domotiqueNG\services\dispatcher\hello.py"
The system cannot find the path specified.
如果Visual Studio Code打算实际使用shebang,则该错误是可以理解的:env
和python3
都不存在。
我应该如何配置Visual Studio Code,以使其不考虑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可执行路径设置。
答案 0 :(得分:0)
可以在设置中配置是否使用shebang:搜索shebang
,然后搜索Code-runner: Respect Shebang
通过 Ctrl F5 运行代码时,使用了正确的解释器。
通过 Alt Ctrl N (Run Code
)运行时,使用了错误的密码。
我检查了
import sys
print(sys.executable)
,由于某种原因,显示了Platform.io解释器。我不知道它如何在Run Code
下结束,但是禁用Platform.io可以帮助。 Alt Ctrl N 和 Ctrl F5 现在都使用正确的解释器。>
我仍然不知道为什么两种启动脚本的方式都使用不同的解释器,但是至少现在可以解决问题。