【问题标题】:vscode python unresolved importsvscode python未解决的导入
【发布时间】:2020-10-17 19:53:27
【问题描述】:

我有一个非常简单的设置:

.

|.env

|hello.code-workspace

+-火车

  |--first/src/hello.py

  |--second/src/hello2.py

为了清楚起见,可以在这张图片中看到。

我的工作区位于 train 文件夹下,因此 ${workspaceFolder} 是 train。

为了让 vscode 熟悉 'second/src' 和 'first/src' 包,我在 .env 文件中定义了 PYTHONPATH:
PYTHONPATH=${workspaceFolder}/second/src:${workspaceFolder}/first/src

在工作区设置中我定义了 terminal.integrated.env.osx:

"settings": {
        "terminal.integrated.env.osx": {
            "PYTHONPATH": "${workspaceFolder}/second/src",
        },
        "python.pythonPath": "/usr/local/bin/python3"
    },

first/src/hello.py:
from hello2 import printHello
 printHello();


second/src/hello2.py:
def printHello():
    print("hello world2")

printHello()

我想要的是先运行/src/hello.py 我可以从 vscode 终端成功运行它,但不知何故在 hello.py 我得到unresolved import 'hello2'

感觉是 .env 根本没有被加载。我想念什么? VSCODE 版本为 1.46.1 操作系统:macOS Mojave

【问题讨论】:

  • 不确定,但您必须明确加载 env。

标签: python visual-studio-code


【解决方案1】:

只需安装在库下面

pip install python-dotenv

在程序运行之前添加以下代码

from dotenv import load_dotenv
load_dotenv(".env", verbose=True)

【讨论】:

  • 感谢您的回复。我能够从终端运行文件,所以“设置”:{“terminal.integrated.env.osx”:{“PYTHONPATH”:“${workspaceFolder}/second/src”,},“python.pythonPath ": "/usr/local/bin/python3" } 似乎已被调用。问题是在 vscode IDE 文件中 import hello2 无法识别(未解析的导入)
  • 所以,问题是,在开发过程中,没有调用 PYTHONPATH 来从 hello2 import printHello 解析,而 PYTHONPATH 是在 .env 文件中定义的。
【解决方案2】:

这是因为您为终端指定了 PYTHONPATH,这意味着 Python 扩展不知道它。如果你在.env 文件中设置它,那么扩展程序就会知道你希望它在src/ 中查找。

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多