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

VS Code中FastAPI项目无法导入自定义utilities模块求助

FastAPI项目模块导入失败问题排查

在VS Code中开发FastAPI项目时,执行启动命令uvicorn Project_name:app触发ModuleNotFoundError,错误日志如下:

Traceback (most recent call last):
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\Scripts\uvicorn.exe\__main__.py", line 7, in <module>
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\click\core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\click\core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\click\core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\click\core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\uvicorn\main.py", line 437, in main
    run(app, **kwargs)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\uvicorn\main.py", line 463, in run
    server.run()
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\uvicorn\server.py", line 60, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\asyncio\base_events.py", line 616, in run_until_complete
    return future.result()
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\uvicorn\server.py", line 67, in serve
    config.load()
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\uvicorn\config.py", line 458, in load
    self.loaded_app = import_from_string(self.app)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\uvicorn\importer.py", line 24, in import_from_string
    raise exc from None
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\site-packages\uvicorn\importer.py", line 21, in import_from_string
    module = importlib.import_module(module_str)
  File "C:\Users\Saoni_Deb\Anaconda3\envs\pycaret_venv8\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\Saoni_Deb\Documents\GitHub\project_path.\project_name\__init__.py", line 14, in <module>
    from .routes import integration_router
  File "C:\Users\Saoni_Deb\Documents\GitHub\project_path.\project_name\routes\__init__.py", line 12, in <module>
    from .user import user
  File "C:\Users\Saoni_Deb\Documents\GitHub\project_path.\project_name\routes\user.py", line 16, in <module>
    from ..config.db import conn, session
  File "C:\Users\Saoni_Deb\Documents\GitHub\project_path.\project_name\config\db.py", line 20, in <module>
    from ..utilities.logger import Logger
  File "C:\Users\Saoni_Deb\Documents\GitHub\project_path.\project_name\utilities\logger.py", line 17, in <module>
    from utilities.logger_config import config

ModuleNotFoundError: No module named 'utilities'

项目目录结构

Project_name
├── Utilities
│   ├── __init__.py
│   ├── logger.py
│   └── logger_config.py
└── Other module
    ├── file1.py
    └── file2.py

logger.py中的导入代码

import logging.config
from utilities.logger_config import config

可能的原因

  • 模块名称大小写不匹配:项目目录为Utilities(首字母大写),但导入时使用utilities(全小写)。Windows文件系统不区分大小写,但Python模块导入在部分场景下会严格区分,导致无法匹配到目标模块。
  • 导入方式错误:logger.py位于Utilities目录内,应该使用相对导入from .logger_config import config,而非绝对导入from utilities.logger_config import config。绝对导入会从全局Python路径查找,而非项目内部目录。
  • 项目根目录不在Python搜索路径:执行uvicorn命令时的当前工作目录不是项目根目录,或项目根目录未被添加到sys.path中,导致Python无法识别自定义模块。
  • 虚拟环境冲突或配置错误:虚拟环境中可能存在同名第三方包utilities,导致Python优先导入第三方包;或是VS Code中配置的Python解释器路径错误,未指向当前项目的虚拟环境。
  • init.py文件异常:Utilities目录下的__init__.py缺失或内容异常,导致Python无法将该目录识别为可导入的模块。

问题解决

更新:已通过卸载冲突包、重新配置Python解释器路径和环境解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:36:18