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

Python3 + Django环境下ModuleNotFoundError问题求助:无法导入utilities模块

Python3 + Django环境下ModuleNotFoundError问题求助:无法导入utilities模块

我来帮你分析下问题并给出可行的解决办法~

首先先还原下你的项目结构和问题细节:

项目目录结构

sample-django/  # 项目根目录
├── scripts/
│   └── run_scripts.py
└── utilities/
    ├── __init__.py
    └── methods.py

你的run_scripts.py代码

from utilities.methods import get_name

def main():
    print(get_name())

main()

运行时的错误

ModuleNotFoundError: No module named 'utilities'

你之前尝试添加sys.path.append('/Users/projects/sample-django/utilities')没解决问题,核心原因是你添加的路径不对——Python要找的是utilities这个包(它在项目根目录下),而不是直接找utilities目录里的文件。下面给你几种靠谱的解决方式:


方法1:在代码中动态添加项目根目录到sys.path

这是最灵活的方式,不需要改环境变量,代码本身就能适配路径:
修改run_scripts.py为:

import sys
import os

# 获取当前脚本所在的scripts目录的绝对路径
current_script_dir = os.path.dirname(os.path.abspath(__file__))
# 项目根目录是scripts目录的上一级
project_root = os.path.dirname(current_script_dir)
# 把根目录添加到Python的模块搜索路径里
sys.path.append(project_root)

from utilities.methods import get_name

def main():
    print(get_name())

main()

这样运行run_scripts.py时,Python就能找到根目录下的utilities包了。

方法2:使用相对导入(需调整运行方式)

如果不想修改sys.path,可以用Python的相对导入语法,但需要满足两个条件:

  1. 给scripts目录也添加一个__init__.py,让它变成一个可导入的包;
  2. 不能直接运行run_scripts.py,要从项目根目录用模块方式执行。

修改后的run_scripts.py:

from ..utilities.methods import get_name

def main():
    print(get_name())

if __name__ == "__main__":
    main()

然后在终端切换到sample-django目录,执行:

python -m scripts.run_scripts

方法3:设置PYTHONPATH环境变量

如果你不想改代码,可以在运行脚本前把项目根目录加入PYTHONPATH,让Python全局搜索这个路径下的模块:

  • macOS/Linux终端:
export PYTHONPATH="/Users/projects/sample-django:$PYTHONPATH"
python scripts/run_scripts.py
  • Windows CMD:
set PYTHONPATH=C:\Users\projects\sample-django;%PYTHONPATH%
python scripts\run_scripts.py
  • Windows PowerShell:
$env:PYTHONPATH = "C:\Users\projects\sample-django;$env:PYTHONPATH"
python scripts\run_scripts.py

备注:内容来源于stack exchange,提问作者Developer7

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 10:37:42