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

Django项目导入报错:未设置PYTHONPATH无法导入主模块

Django模块导入报错问题解答

1. 报错原因

Python查找模块时仅会在sys.path列表中的目录搜索。你的场景下:

  • 在root目录执行python app/manage.py时,Python默认将app目录(manage.py所在目录)加入sys.path,但root目录不在搜索路径内,而app模块实际存放在root目录下,因此Python找不到该模块。
  • 进入app目录执行python manage.py时,Python将当前工作目录(app目录)加入sys.path,此时搜索app模块会在app目录下查找,但该目录内没有名为app的子目录,因此报错。
    手动设置PYTHONPATH="$(pwd)"(root目录下)是把root目录加入了sys.path,Python就能找到root下的app模块,导入因此成功。

2. 保留当前导入方式且无需手动设置PYTHONPATH的方法

方法一:修改manage.py自动添加路径

在app/manage.py开头添加以下代码,自动将root目录加入sys.path:

import os
import sys

# 获取root目录路径(manage.py所在目录的上级目录)
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
if ROOT_DIR not in sys.path:
    sys.path.append(ROOT_DIR)

无论从哪个目录运行manage.py,脚本都会自动把root目录加入搜索路径,无需手动配置环境变量。

方法二:使用-m参数运行命令

在root目录下执行:

python -m app.manage runserver localhost:8000

Python的-m参数会将当前工作目录(root)加入sys.path,确保能正确找到app模块并执行manage.py逻辑。

方法三:配置PyCharm运行环境

  1. 将root目录设置为PyCharm的项目根目录。
  2. 右键root目录,选择Mark Directory as → Sources Root。
  3. 在运行配置中,把Working Directory设置为root目录。
    这样PyCharm会自动将root目录加入sys.path,运行项目时不会报错,同时自动补全功能也能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 19:00:58