我花了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:
时出现错误从app.api- 。Api_v1导入api_router;app模块未找到 从.api
- 。Api_v1导入api_router;相对导入,但没有父模块
- 从api。Api_v1导入api_router;这个可以工作,但是linting不工作
我然后添加额外的路径到.vscode设置:
{
"python.analysis.extraPaths": ["./src/app"]
}
我在windows上运行WSL2,文件在挂载的驱动器上,但将其移动到linux WSL远程的主驱动器上:/mnt/c/james>/home/james/~ $
我的问题是为什么我运行main.py,它给出了错误1,然后马上再次运行它给出了错误2?然后添加额外的路径没有什么不同,然后第二天早上我重启了我的笔记本电脑,一切都神奇地工作了?
我想哭…
似乎答案可能是我需要更改在终端中运行main.py的目录:
this don't work:
~workspace/$ main.py
如此:
~workspace/$ cd src/
~workspace/src/$ main.py