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

控制台运行create_admin_user.py时models模块导入失败的原因及解决

问题原因

PyCharm会自动将项目的src/目录设为源根并添加到Python的模块搜索路径sys.path中,因此能正常导入models模块。但终端直接执行create_admin_user.py时,Python仅将脚本所在的src/scripts/目录加入sys.path,而models所在的src/不在搜索路径内,所以触发ModuleNotFoundError。

另外,你尝试的from ..models import ...属于相对导入,直接运行脚本时Python会将其视为顶层模块,不允许使用相对导入,因此无法生效。

解决方法

方法1:在脚本中手动添加src路径

在create_admin_user.py的最顶部添加以下代码,强制将src/目录加入模块搜索路径:

import sys
import os

# 获取当前脚本所在目录的上级目录(即src/)
src_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(src_path)

# 随后正常导入即可
from models import User, Role, Session

方法2:以模块方式运行脚本

切换到包含src/的上级目录,用python -m命令以模块形式运行脚本:

python -m src.scripts.create_admin_user

此时可以使用相对导入,将create_admin_user.py中的导入语句改为:

from ..models import User, Role, Session

注意:这种方式必须通过python -m执行,不能直接运行脚本文件。

方法3:设置PYTHONPATH环境变量

在终端中先将src/目录添加到PYTHONPATH,再执行脚本:

  • Linux/macOS:
    export PYTHONPATH="/实际路径/src"
    python src/scripts/create_admin_user.py
    
  • Windows(命令提示符):
    set PYTHONPATH=C:\实际路径\src
    python src\scripts\create_admin_user.py
    
  • Windows(PowerShell):
    $env:PYTHONPATH = "C:\实际路径\src"
    python src\scripts\create_admin_user.py
    

内容的提问来源于stack exchange,提问作者Никита Ершов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:37:17