我在fastapi里使用绝对地址引入一个类,会报错?为什么呢,我看别人都是可以的
百度过很多了,都没解决,有大佬帮忙看看吗?
我在fastapi里使用绝对地址引入一个类,会报错?为什么呢,我看别人都是可以的
百度过很多了,都没解决,有大佬帮忙看看吗?
这个问题可能是由多种原因导致的,但最常见的原因可能是以下几点:
MyClass的类,并且它位于my_module模块中,那么你应该使用from my_module import MyClass来导入它。__init__.py文件)外部直接导入包内的模块。为了更准确地诊断问题,我需要看到更多的代码和上下文信息。例如,你的项目结构、你尝试导入的类的代码、以及你尝试导入它的代码。不过,基于你目前提供的信息,我建议你首先检查上述常见的问题点。
导入跟python的查找路径有关, 你的入口文件是index.py, 你可以用index文件所在目录下的路径from utils.Response import Response, 或者自身文件所在包的相对路径from ..utils.Response import Response, 如果实在需要像图中这样写, 需要把code目录的父目录加入到查找路径, 可以在index.py中加入以下代码
import sys
path = 'fastapi-gwxz的绝对路径'
# 或者以下方式
# path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(path)但是这种方式有的ide无法正确提示导入
这个应该是工作路径的问题,你必须在code文件夹所在的目录运行cmd命令,比如cmd命令cd {code所在路径},如果在D盘,就输入一个d:再回车,然后运行python xxx.py
根据你的目录和报错截图看到有一个问题,就是 index.py 中导入 apis.data 的话,应该是 from code.apis.data import api_data 而不是 from apis.data import api_data。
其他的用法应该没问题,从 index.py 作为运行文件的话,uvicorn code.index:app --host 0.0.0.0 --port 9000 这种应该就没事,我的平常也是这么使用的,目录结构与你相同。
4 回答961 阅读
1 回答687 阅读
1 回答682 阅读
1 回答520 阅读
640 阅读
583 阅读
563 阅读
改写成
from code.utils import Response