在Azure App Services中导入同目录Python文件遇ModuleNotFoundError求助
解决Azure App Services中FastAPI导入同目录Python文件的问题
可能的原因及解决方法
1. 确认目录结构与文件部署状态
确保settings.py和main.py处于同一根目录(即部署后的site/wwwroot目录下),可通过Azure门户的「高级工具」(Kudu)进入文件管理器,检查两个文件是否都存在于正确路径。
2. 调整Python路径(最常见解决方法)
Azure App Service的Python运行环境可能未将当前脚本所在目录加入sys.path,可在main.py开头添加以下代码,强制将当前目录加入路径:
import sys from pathlib import Path sys.path.append(str(Path(__file__).parent))
之后再执行import settings即可正常导入。
3. 检查启动命令配置
确保Azure App Service的启动命令是从根目录启动uvicorn,正确的启动命令示例:
uvicorn main:app --host 0.0.0.0 --port 8000
若启动命令指定了错误的子目录路径,会导致Python无法找到同目录的文件。
4. 避免相对导入的坑
如果尝试使用相对导入(比如from . import settings),需确保将应用作为包结构部署(即根目录下添加__init__.py空文件),但对于简单的单文件+配置文件的场景,直接调整sys.path的方式更简单。
内容的提问来源于stack exchange,提问作者Sheldon
相关产品推荐
相关产品推荐

