【问题标题】:Error loading ASGI app. Could not import module "src.main"加载 ASGI 应用程序时出错。无法导入模块“src.main”
【发布时间】:2021-09-30 20:34:28
【问题描述】:

我看到解决方案正在更改 main -> src.main 所以我尝试了,但是即使我使用 cd src 移动到 src 并运行 uvicorn main:app --reload 也会出现同样的问题,错误仍然存​​在。

我需要什么?

我使用的是虚拟环境,但我尝试在没有 vm 的情况下运行 uvicorn,但我遇到了同样的问题。

代码结构

.
|__ Alembic/
|__ venv/
|__ src/
    |__ main.py
    |__ services.py
    |__ database.py
    |__ models.py
    |__ __init__.py

【问题讨论】:

  • 您好@Bilal,为了让我们帮助您,我们需要您提供有关您的问题的更多详细信息:例如您的代码结构,如果您使用的是 venv 等。
  • 好的,抱歉,我是 Stack Overflow 的新手
  • 别担心,欢迎!你在使用 VSCode 吗?你试过从终端运行它吗?
  • 是的,我使用的是 vscode 我使用的是集成终端。我从 ubuntu 终端尝试过,我得到了同样的错误

标签: python fastapi uvicorn


【解决方案1】:

我认为问题出在 VSCode Python 解释器

按此顺序尝试

  1. 在 VSCode 终端中,转到您的项目根文件夹
myProjectRootFolder
|__ ...
|__ venv/
|__ src/
    |__ ...
    |__ main.py
    |__ __init__.py
  1. 激活名为venv 的虚拟环境
source venv/bin/activate
  1. 安装所需的依赖项
pip install fastapi uvicorn
  1. 现在! 选择 Python 解释器 Ctrl+Shift+P(macOS:Cmd +Shift+P)
  1. 停用您的 venv(如果您不停用您的 venv,您会遇到与之前提到的相同的错误)
deactivate
  1. 再次激活
source venv/bin/activate
  1. 运行您的代码
# if you are in the root folder
uvicorn src.main:app

# or

# if you are in the src folder
uvicorn main:app

【讨论】:

    【解决方案2】:

    所以我让它工作了,但我不知道怎么做。但我所做的是将所有导入更改为模块导入。

    所以而不是

    import database
    

    from . import database
    

    我做到了:

    from src import database
    

    import src.database
    

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2020-07-04
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多