【问题标题】:How to make VS Code read Python imports without displaying yellow squigglies?如何让 VS Code 读取 Python 导入而不显示黄色波浪线?
【发布时间】:2019-12-11 11:43:20
【问题描述】:

我已经解决了一个问题,但无法找到解决方案。 VS Code 将无法识别模块导入,因此在函数下方添加了一条黄色波浪线,如下所示:

这些在每个导入的函数上,但在执行主文件时它呈现和执行得非常好。 问题仅在于 VS Code 中代码的可视化。

我的版本

  • MacOS Mojave 10.14.5
  • VS 代码 1.36.1
  • Python 3.7.3

我试过了

  • 将 VS 代码源设置为 /usr/bin/python
  • 将 VS 代码源设置为 /usr/local/bin/python3
  • 重新安装 Python
  • 重新安装 Python3
  • 谷歌搜索
  • false 更改为true in "python.jediEnabled": in settings.json

我的结构:

为了说明问题,这里有一个简单的应用程序:

目录

注意:与动物/目录中的 init.py 相同的错误。

init.py

from animals.bird import *
from animals.reptile import *

app.py

from __init__ import *
print_bird()
print_reptile()

动物/爬行动物.py

def print_reptile():
    print("I'm a reptile. ssssssssss!")

动物/bird.py

def print_bird():
    print("I'm a bird. tweet!")

当运行 python3 app.pypython app.py 时,结果始终是预期的文本:

I'm a bird. tweet!
I'm a reptile. ssssssssss!

【问题讨论】:

    标签: python python-3.x visual-studio-code


    【解决方案1】:

    几件事,你不需要from __init__ 来导入,你可以在设置__init__.py 文件后使用from animals import bird, reptile

    那么我假设你已经安装了 vs code python 扩展。在这种情况下,在您的项目根目录中设置一个包含 python 项目根目录的 .env 文件(不一定是相同的东西)。例如。我的 python 代码在项目根目录的 src 下,所以我的 env 文件中有:

    PYTHONPATH="./src/project/"
    

    然后在你的设置中你可以设置:

    "python.envFile": "${workspaceFolder}\\<project>.env",
    

    这应该告诉 vs code 你的“python 根”在哪里,所以你的所有路径都是正确的。

    让我发疯,直到我把这个排序:)

    【讨论】:

    • 哦,哇,从未听说过 .env 文件或 settings.json 中的 python.envFile。我在搜索 .env 文件时遇到问题。 PYTHONPATH 应该转到包含主 .py 文件的目录,还是应该引用 .py 本身? (例如,./src/./src/app.py &lt;project&gt;.env 指的是什么?那是家中的环境还是项目目录中的环境?太感谢了!我觉得我错过了 Python 应该做的一些事情。
    • 我在我的 django 项目中使用了一个,它位于 /src/ 下。因此,在顶部 目录中,我将 python 路径指定为 ./src/,因此所有导入都与该路径相关。效果很好,但花了我一段时间和大量谷歌搜索才能找到该解决方案!跨度>
    • 我查看了 python.envFile 上的 VS Code 文档。我不明白您的回答中的${workspaceFolder}\\&lt;project&gt;.env。我现在将其设置为"python.envFile": "${workspaceFolder}/src/.env"。谢谢!抱歉,但我仍然对 .env 文件中的 PYTHONPATH 感到困惑......对于上下文:我没有使用 Django 或任何框架,并且在任何地方都没有特殊的环境。我在 settings.json 中也有 "python.pythonPath": "/usr/local/bin/python3"。我应该有这个吗? .env 的PYTHONPATH 应该在项目根目录中指向什么?
    • 这里有更多关于 vs 代码的 .env 文件的信息:code.visualstudio.com/docs/python/…
    • 谢谢!那个 .env 文件现在有意义了。不幸的是,现在该程序甚至无法运行。将from __init__ import * 添加回 app.py 允许应用程序再次运行,所以我认为我的 .env 和 settings.json 调整不会改变事情。我将备份并查看 Python 的实际安装。你有什么想法会发生什么吗?
    【解决方案2】:

    您可能在目录的根目录下创建了两个 venv。例如,在 {Python_Projects} 根文件夹中,您创建了 test1_venv 和 test2_venv。您需要删除其中一个。

    {Python_Projects} 根文件夹,您需要创建 .vscode 文件夹并在其中创建 settings.json。在这个 json 文件中,您需要声明 venv python 二进制文件的路径。 {"python.pythonPath": "test_env/bin/python"}

    【讨论】:

      【解决方案3】:

      这是我找到的解决方案。在.vscode/settings.json

      {
           "python.analysis.extraPaths": ["${workspaceRoot}/path/to/file"]
      }
      

      请注意,您可以使用* 等通配符将所有文件添加到特定目录中,例如pkgname/utils/*

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-16
        • 2021-04-04
        • 2017-09-13
        • 2019-08-08
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2021-11-20
        相关资源
        最近更新 更多