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

Python跨目录导入报错:Django中views.py无法导入test.py的Main类

解决Django中导入外部模块的ModuleNotFoundError问题

看起来你遇到的核心问题是Python模块查找路径的差异——PyCharm自动帮你配置了路径,但命令行和Django服务器环境没跟上。下面给你几个不用硬编码路径的解决方案,按推荐程度排序:

1. 把dirCode转为可安装的本地包(最推荐)

这是最规范的做法,不仅能解决Django的问题,其他需要用到这个模块的脚本也能直接导入。步骤很简单:

  • 在src\dirCode目录下创建一个pyproject.toml文件,内容如下:
    [build-system]
    requires = ["setuptools>=61.0"]
    build-backend = "setuptools.build_meta"
    
    [project]
    name = "dircode"
    version = "0.1.0"
    packages = ["dirCode", "dirCode.dirSubCode"]
    
  • 打开Anaconda Prompt,切换到src目录,执行:
    pip install -e .
    
    这个命令会把dirCode作为“可编辑”的本地包安装到你的环境里,之后不管是Django还是命令行,都能直接用from dirCode.dirSubCode.test import Main导入,完全不用管路径问题。

2. 在Django全局配置中添加路径

如果不想搞包管理,也可以在Django的settings.py里统一配置路径,让所有应用都能识别到src下的模块:

import os
import sys

# 获取src目录的绝对路径(假设settings.py在src\Django\DjangoApp下)
SRC_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# 确保src目录在Python路径中
if SRC_ROOT not in sys.path:
    sys.path.append(SRC_ROOT)

这样Django启动时就会自动把src加入路径,你的导入语句就能正常工作了。这个方法只针对Django环境,但足够解决你当前的问题。

3. 设置PYTHONPATH环境变量(快速临时方案)

如果只是想快速测试,可以在Anaconda Prompt里临时设置PYTHONPATH:

# 替换成你实际的src路径
set PYTHONPATH=C:\your\full\path\to\src

然后再启动Django服务器:

python manage.py runserver

如果想永久生效,可以在Windows的「系统属性-环境变量」里添加一个名为PYTHONPATH的系统变量,值设为src的绝对路径。


为什么PyCharm能运行?

PyCharm默认会把你的项目根目录(这里就是src)标记为Sources Root,它会自动把这个目录加入Python的模块查找路径,所以导入没问题。但命令行和Django服务器不会自动做这个操作,所以需要手动配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:21:34