VSCode Python 运行命令错误: /bin/sh: python: 命令未找到

3

我认为我在VSCode上遇到了与路径相关的问题。

我完全卸载并重新安装了操作系统,我现在使用的是Monterey 12.3.1。

我使用brew安装了Python:

➜  ~ python3 --version
Python 3.9.12

➜  ~ which python3    
/usr/local/bin/python3

然而,我在 Mac 上正常运行代码时遇到了问题。 我可以使用终端运行:

➜  test Python3 test.py
Hello World!

但是如果我尝试使用右键单击 -> 运行来运行,我会得到以下结果:

[Running] python -u "/Users/user/Desktop/test/test.py"
/bin/sh: python: command not found

但是如果我在左侧面板上点击“运行和调试”,则会出现以下情况:

➜  test  /usr/bin/env /usr/local/bin/python3.9 /Users/user/.vscode/extensions/ms-python.python-2022.4.1/pythonFiles/lib/python/debugpy/launcher 56623 -- /Users/user/Desktop/test/test.py 
Hello World!

奇怪的是,当我使用触控栏上的运行按钮来运行程序时,它可以正常工作:

➜  test  cd /Users/hugo/Desktop/test ; /usr/bin/env /usr/local/bin/python3.9 /Users/hugo/.vscode/extensions/ms-python.python-2022.4.1/pythonFiles/lib/python/debugpy/launcher 56632 -- /Users/hug
o/Desktop/test/test.py 
Hello World!

这个问题是否与苹果在 Monterey 中删除 Python2 有关?

我注意到在我的终端中,命令“python”不再起作用,所以我认为这可能与此有关,但我不确定如何在 vscode 中解决这个问题而不会弄乱路径。


1
同样的问题。VSCode 1.66.2。 - Rust Fisher
5个回答

13
问题出在Code Runner上。但这很容易解决。打开Code Runner的Executor map settings.json --> 找到“python”,你会发现它写着“python” == “python -u” --> 把它改成“python” == “python3”,然后代码应该能够使用Output窗口中的快捷键运行。
干杯!

谢谢!这个答案是唯一一个为我解决问题的! - James Cutler

2

以上的回答非常有用!

还有另一种方法:

  1. 打开代码 -> 首选项 -> 设置或按下command +
  2. 搜索在终端中运行
  3. 选择它!

2
如果您使用homebrew安装了python,它应该在默认位置(即/usr/local/bin/python)。
/opt/homebrew/bin/python3

您的问题实际上与 Code Runner 有关。请尝试在 vscode 右上角单击 运行 Python 文件

enter image description here

您的代码将会正常运行。

另外一些信息

macOS since version 10.8 comes with Python 2.7 pre-installed by Apple . 

关于此内容的信息,请查看https://docs.python.org/3/using/mac.html#:~:text=5.1.-,Getting%20and%20Installing%20MacPython,www.python.org

因此,如果您运行

➜  ~ which python3 

即使您尚未安装Python,默认也会显示到目录。
/usr/local/bin/python3

1

通过命令行(Linux、macOS),创建符号链接更加容易。

ln -s /opt/homebrew/bin/python3 /opt/homebrew/bin/python

对我来说很有效。


0
在VSCode中点击扩展,然后输入"code runner"。选择Code Runner的设置,点击扩展设置,然后在settings.json中将python更改为python3。这样就可以正常运行了。

你的回答可以通过提供更多的支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

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