我在使用 Visual Studio Code 时在 Python 项目中导入模块时遇到问题。我收到 ModuleNotFoundError,表明 Python 找不到 defmet_data_piplines 模块。
项目结构 这是我的项目目录的概述:
C:\projects\defmet
│
├── defmet_data_piplines
│ ├── init.py
│ ├── 应用程序
│ │ ├── init.py
│ │ ├── main.py
│ │
│ ├── ...
├── 笔记本
├── venv
└── ...
错误信息 当我运行脚本(main.py)时,出现以下错误:
ModuleNotFoundError:没有名为“defmet_data_piplines”的模块
当前配置 我的 launch.json 文件中有以下设置:
{
“版本”:“0.2.0”,
“配置”:[
{
"name": "Python 调试器:带有 ETL 参数的当前文件",
“类型”:“调试”,
“请求”:“启动”,
“程序”:“${文件}”,
“控制台”:“集成终端”,
“参数”:[
( ---ssome args 我需要)
],
"cwd": "C:\projects\defmet",
“环境”:{
“PYTHONPATH”:“$ {workspaceFolder} / defmet_data_piplines”
}
}
]
}
我尝试过的 我验证了目录结构是否正确,并且 defmet_data_piplines 目录确实位于项目根目录中。 我检查了我的虚拟环境是否已激活并且所有必需的软件包均已安装。 我尝试在 launch.json 中设置 PYTHONPATH 以包含模块的路径并设置 cwd,尽管我打开的目录(在 vs code 中)是 defmet 是什么原因导致此 ModuleNotFoundError?我该如何解决它?任何有关在 Visual Studio Code 中正确配置我的项目环境的指导将不胜感激! 注意:我在网上遇到错误 from defmet_data_piplines.app.data_pipeline_factory.data_pipeline_factory import DataPipelineFactory
谢谢!
您可以忽略
launch.json
并使用 sys.path
,如下所示。 launch.json
优先于 launch.json
import sys
import os
# Get the current folder of main.py
current_dir = os.path.dirname(os.path.abspath(__file__))
# move 2 folders up to 'C:\projects\defmet'
project_root = os.path.abspath(os.path.join(current_dir, "../.."))
# Append the project root to sys.path
sys.path.append(project_root)
# Import defmet_data_pipelines
import defmet_data_piplines as ddp
# Use defmet_data_piplines
ddp.some_function()