You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI项目模块导入错误求助:无需硬编码路径的解决方案

解决方案

1. 使用模块方式运行(推荐)

在项目根目录执行以下命令,替代直接运行python app/run.py:

python -m app.run

这种方式会自动将项目根目录加入Python的模块搜索路径(sys.path),无需手动修改sys.path或设置环境变量,就能正常解析from app.api import...这类绝对导入。

2. 正确配置PYTHONPATH

若坚持使用python app/run.py的运行方式,需确保PYTHONPATH指向项目根目录:

  • Windows(CMD):
    set PYTHONPATH=C:\Users\iswar\Downloads\Alembic\Alembic
    python app/run.py
    
  • Windows(PowerShell):
    $env:PYTHONPATH="C:\Users\iswar\Downloads\Alembic\Alembic"
    python app/run.py
    
  • Linux/macOS:
    export PYTHONPATH=/path/to/Alembic
    python app/run.py
    

VSCode终端需重启或重新加载环境才能生效,也可在VSCode的settings.json中配置python.envFile,指向包含PYTHONPATH设置的.env文件。

3. 动态获取项目根目录(替代硬编码)

如果不想依赖外部环境配置,可在run.py中动态计算项目根路径,避免硬编码:

import os, sys
# 获取当前脚本所在目录(app/文件夹路径)
current_script_dir = os.path.dirname(os.path.abspath(__file__))
# 项目根目录是当前目录的上级目录
project_root = os.path.dirname(current_script_dir)
sys.path.append(project_root)

import uvicorn
from fastapi import FastAPI
import logging

from app.api import routes as api_routes

4. 检查包结构

确保app和app/api文件夹下都存在__init__.py文件(可以是空文件),Python需要这个文件识别文件夹为可导入的包。

内容的提问来源于stack exchange,提问作者Rajesh Mappu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:52:16