尽管设置了 PYTHONPATH,但在 VSCode 中导入错误

问题描述 投票:0回答:2

我在 WSL 上本地部署了一个 Airflow 环境,我正在使用 VScode 进行调试和编码。

我的应用程序文件夹结构如下:

~/workspaces
|--- .env
|---organization/gcp/datalake
    |--- dags
        |--- //My dags
    |--- plugins
        |--- __init.py__
        |--- operators
            |--- __init.py__
            |--- facebook_operators.py
        |--- hooks
            |--- __init.py__
            |--- facebook_hooks.py

我无法理解 VSCode 关于导入的行为。

我通过

dags
文件将
plugins
PYTHONPATH
文件夹添加到
.env
中。我的VSCode是直接在
workspaces
目录下打开的。

问题:

我收到导入错误,尽管我可以成功

go to definition
我想要导入的类。

示例:在我的

facebook_operators.py

from hooks.facebook_hooks import FacebookAdsHook
引发以下错误:

模块“hooks”中没有名称“facebook_hooks”

我的

.env
文件的内容:

PROJECTDIR=~/workspaces/organization/gcp/datalake
PYTHONPATH=${PROJECTDIR}/plugins
PYTHONPATH=${PROJECTDIR}/dags:${PYTHONPATH}

我哪里做错了?我想了解并解决这个错误。

python visual-studio-code import airflow pythonpath
2个回答
0
投票

在文件“

facebook_operators.py
”开头添加以下语句,帮助VSCode找到需要导入的文件:

import os,sys 
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

(VSCode默认从当前打开文件的父文件夹中查找文件,我们可以使用上面的语句将需要导入的文件路径添加到系统路径中,VSCode就可以找到它。)


0
投票

您需要将

"python.analysis.extraPaths"
添加到您的
.vsode/settings.json
文件中,如下所示:

{
  "editor.formatOnSave": true,
  "python.analysis.extraPaths": ["./airflow/plugins"]
}
© www.soinside.com 2019 - 2024. All rights reserved.