Python "module not found" 或 "relative path with no parent" 或 "no module named <app>" 不一致的错误
Python "module not found" or "relative path with no parent" or "no module named <app>" inconsistent errors
我花了 6 个小时试图解决一个看起来像这样的导入问题:
目录:
workspace
workspace/src
workspace/src/app/main.py
workspace/src/app/__init__.py
workspace/src/app/api/api_v1.py
workspace/src/app/api/__init__.py
main.py
from app.api.api_v1 import api_router
api.py
from fastapi import APIRouter
api_router = APIRouter()
尝试 运行 时出错 main.py:
- from app.api.api_v1 导入 api_router > 未找到应用程序模块
- from .api.api_v1 import api_router > 相对导入但没有父模块
- from api.api_v1 import api_router > 这有效但 linting 无效
然后我将额外的路径添加到 .vscode 设置:
{
"python.analysis.extraPaths": ["./src/app"]
}
我在 windows 上 运行ning WSL2,文件在已安装的驱动器上,但将其移动到 linux WSL 远程设备上的主驱动器:/mnt/c/james > /home/james/ ~$
我的问题是,为什么我 运行 main.py 给出了错误 1,然后 运行 再次立即给出错误 2?然后添加额外的路径并没有什么不同,然后第二天早上我重新启动了我的笔记本电脑,一切都神奇地工作了?
我想哭...
似乎答案可能是我需要更改目录我是 运行 和终端中的 main.py:
这行不通:
~workspace/$ main.py
这个有效:
~workspace/$ cd src/
~workspace/src/$ main.py
我花了 6 个小时试图解决一个看起来像这样的导入问题:
目录:
workspace
workspace/src
workspace/src/app/main.py
workspace/src/app/__init__.py
workspace/src/app/api/api_v1.py
workspace/src/app/api/__init__.py
main.py
from app.api.api_v1 import api_router
api.py
from fastapi import APIRouter
api_router = APIRouter()
尝试 运行 时出错 main.py:
- from app.api.api_v1 导入 api_router > 未找到应用程序模块
- from .api.api_v1 import api_router > 相对导入但没有父模块
- from api.api_v1 import api_router > 这有效但 linting 无效
然后我将额外的路径添加到 .vscode 设置:
{
"python.analysis.extraPaths": ["./src/app"]
}
我在 windows 上 运行ning WSL2,文件在已安装的驱动器上,但将其移动到 linux WSL 远程设备上的主驱动器:/mnt/c/james > /home/james/ ~$
我的问题是,为什么我 运行 main.py 给出了错误 1,然后 运行 再次立即给出错误 2?然后添加额外的路径并没有什么不同,然后第二天早上我重新启动了我的笔记本电脑,一切都神奇地工作了?
我想哭...
似乎答案可能是我需要更改目录我是 运行 和终端中的 main.py:
这行不通:
~workspace/$ main.py
这个有效:
~workspace/$ cd src/
~workspace/src/$ main.py