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

执行uvicorn时如何修改PythonPath?解决FastAPI导入路径问题

解决FastAPI项目PythonPath配置问题

针对你的项目结构,要在运行uvicorn时修改PythonPath,这里提供几种实用方案:

方案1:通过环境变量PYTHONPATH临时指定

这是最直接的方式,启动uvicorn时将src目录加入Python的模块搜索路径:

# 切换到src目录后执行
PYTHONPATH=$(pwd) uvicorn openapi_server.main:main --reload

或者一行完成(无需切换目录,假设项目根目录是src的上级):

PYTHONPATH="./src" uvicorn openapi_server.main:main --reload

这样Python会把src视为顶级模块目录,所有基于src的导入路径都能被正确解析。

方案2:正确使用uvicorn的--app-dir参数

你之前的命令没生效,大概率是因为导入路径和--app-dir的匹配逻辑不对:

  • 如果你的代码里是相对于openapi_server目录的导入(比如from apis import xxx),正确命令如下(在src目录下执行):
    uvicorn main:main --reload --app-dir ./openapi_server
    
    --app-dir会把openapi_server目录加入sys.path,Python就能直接找到同目录下的apis、models等子模块。
  • 如果你的代码是相对于src目录的导入(比如from openapi_server.apis import xxx),则不需要--app-dir,直接用方案1将src加入PYTHONPATH即可。

方案3:在代码中手动添加路径

如果环境变量配置不方便,可以在main.py最顶部添加代码,强制将src目录加入搜索路径:

import sys
from pathlib import Path

# 获取src目录的绝对路径
src_dir = Path(__file__).parent.parent
sys.path.append(str(src_dir))

这种方式不依赖启动命令,不管怎么运行uvicorn都能确保导入路径正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:12:23