选择Python解释器在VScode中无法工作

11
我已在我的Windows电脑上安装了第一个Python解释器,python.exe的路径为:
C:\Users\myname\AppData\Local\Programs\Python\Python38-32\python.exe

原本工作正常(运行、调试等等)。


最近,我尝试在我的电脑上安装Miniconda以构建不同的Python环境,python.exe的路径是

D:\miniconda\python.exe

我会尽力帮助您翻译。这是需要翻译的内容:

我按照 VScode 官方教程 的指示选择了我创建的 conda 环境。 状态栏似乎是正确的:

图片

但是,如果我运行以下 Python 代码:

import sys
sys.executable

输出为:
C:\Users\myname\AppData\Local\Programs\Python\Python38-32\python.exe

这似乎不正确。

我已将两个Python路径添加到我的Windows设置中的Path环境变量中。 如何解决这个问题?


你是如何运行代码的? - Brett Cannon
@BrettCannon 我刚刚在 VScode 终端中输入了 python,然后逐步运行了上面的代码。 - yang
10个回答

14

我刚刚重新加载了 Python 扩展,当你进入 VS Code 并点击 "Python 扩展" 时,你会看到下面有一个“需要重新加载”的选项,只需点击即可。然后再次在“视图”中检查“Python 解释器”,它将解决你当前面临的问题。


我必须点击“停用”才能显示“需要重新加载”的选项。然后,我在SSH会话中,所以我必须在本地重新安装扩展,并在工作区中激活。然后,我就可以再次使用我的环境了。 - CharlesG
现在它只是永远停在"重新激活终端"的状态。 - undefined

7
当VSCode没有让我选择Python解释器时,我在settings.json中添加了一个defaultInterpreterPath,然后我就可以选择了。
  1. 按照这篇Stack Overflow文章的说明打开工作区的settings.json
  2. 然后,在settings.json中添加"python.defaultInterpreterPath": "/path/to/your/interpreter/python.exe"(如VSCode文档所述)。
  3. 然后您就可以选择此默认解释器了。
示例settings.json
{
    ... some settings here ... ,
    "python.defaultInterpreterPath": "c:/python39/python.exe"
}

3

我曾经遇到过同样的问题。在选择解释器后,选定的环境未显示在状态栏中。仍然显示为“选择解释器”。重新启动VScode即可解决问题。


4
现在在我的情况下,重新启动不起作用。 - Prakhar Sharma
请问您是如何解决这个问题的?谢谢。 - uoay
1
重新启动后,VS Code 自动选择了我在重启之前尝试选择的解释器。我没有做任何特别的操作。 - vinodhraj

1
你可以配置 VSCode 的工作区设置。您需要在源项目中创建一个名为 .vscode/ 的文件夹,并在其中放置 settings.json 文件。文件内容如下:
{
    "python.pythonPath": "path-to-your-venv/bin/python",
    "editor.formatOnSave": true,
    "editor.formatOnType": true,
    "python.linting.lintOnSave": true,
    "python.linting.flake8Enabled": true,
    "python.linting.pylintEnabled": true,
    "python.linting.pylintArgs": ["--load-plugins", "pylint_django"],
    "python.linting.enabled": true,
    "editor.rulers": [80],
    "editor.tabSize": 4,
    "prettier.singleQuote": true,
    "editor.defaultFormatter": "ms-python.python",
    "python.formatting.provider": "autopep8"
}
  

在启用了你的venv之后,你需要使用pip安装autopep8flake8库。
pip install autopep8
pip install flake8

然后,重新启动VSCode。
希望能帮到你。

1
遇到了同样的问题。原来我不能在工作区级别选择解释器,所以我选择了工作文件夹并且它起作用了。
  1. 按F1打开菜单。 菜单
  2. 选择Python:选择解释器。如果您看不到它,请尝试输入它。
  3. 选择第一个选项,即您的工作文件夹。 选择列表
  4. 您会看到一个虚拟环境和已安装的Python列表。选择您想要的那个。 Python环境列表

1

至少在 Mac 上,这是因为虚拟环境中的 python/python3/python3.9 是一个符号链接,指向系统解释器,比如/opt/homebrew/bin/python3,而 VSCode 会遵循这个符号链接。

所以相对导入的路径和你的虚拟环境中所有包的路径现在都是/opt/homebrew/bin,而不是./venv/bin,因此,除非它们也被安装在/opt/homebrew/bin中,否则 VSCode 将无法解析您虚拟环境中的任何导入。这意味着您将失去“跳转到定义”和类似功能,“运行此代码”不起作用,检查器无法提供任何与导入相关的反馈等等。

一种有效的解决方案是将 python 二进制文件复制到虚拟环境中,而不是使用符号链接。您可以在创建虚拟环境之后执行此操作。

python -m venv venv
rm venv/bin/python venv/bin/python3 venv/bin/python3.9
cp /opt/homebrew/bin/python3.9 venv/bin/
ln -s venv/bin/python3.9 venv/bin/python
ln -s venv/bin/python3.9 venv/bin/python3
source venv/bin/activate
pip install -r your_requirements_file.txt

然后在VSCode中将Python解释器设置为venv/bin/python3.9,一切都会正常工作。

这已经被报告过了,但修复程序没有获得足够的投票来实施。

https://github.com/microsoft/vscode-python/issues/13603

当然,根据需要在上述代码中更改路径和Python版本。

1

这是在我的Windows PC上发生的。尽管我已经安装了conda作为虚拟环境管理器并创建了一堆虚拟环境,但VSCode没有识别任何Python解释器。

简短回答:

安装扩展:Visual Studio Code的Python扩展

  • 进入VSCode的扩展
  • 安装Visual Studio Code的Python扩展。
  • 按CTRL + P选择解释器

现在它应该列出所有配置的环境。


0
我曾经遇到过同样的问题,原因是 site-packages/sitecustomize.py(在任何其他 Python 代码之前运行的脚本)输出了一些东西,这不应该发生(完全是我的错)。只需删除该文件即可解决问题。
为了调查类似的问题,我建议查看 vscode 的输出,选项卡“Python”,也许该输出会给你一些提示。对我来说,它是类似于以下内容:
Failed to get interpreter information for "..." returned bad JSON

0

我曾经遇到过类似的问题,因为我之前在尝试使用 VS Code 扩展程序 Live Server 时编辑了 settings.json 文件。不过对我来说,解决方案是从 VS Code 的扩展程序部分卸载 Python,然后重新安装它。


-1

Python在终端中的值与您在VS Code中选择的内容完全无关,因为终端控制着PATH上的内容。您有两个选项:

  1. 使用虚拟环境,这样Python扩展可以激活您的终端,使python指向您想要的内容
  2. 使用绿色播放按钮运行您的代码
  3. 使用VS Code的运行/调试功能

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