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

Django导入外部自定义包报错:找不到模块或非包问题求助

解决Django导入外部自定义包的问题

核心问题分析

你遇到的报错本质是Python无法识别这些外部目录为合法包,同时sys.path的配置方式和导入路径不匹配。

具体解决步骤

1. 将外部目录转为合法Python包

在manage_db和g两个目录下,分别创建一个空的__init__.py文件(文件名前后各两个下划线)。Python只有检测到该文件,才会把对应目录识别为可导入的包。

2. 修正sys.path的配置逻辑

你当前把两个包的自身目录添加到sys.path,这会导致Python将它们视为模块搜索的根目录,和你的导入路径冲突。正确做法是把这两个包的父目录添加到sys.path:

# settings.py中替换原有代码
import os
import sys
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent
# 获取外部包所在的父目录
external_root = BASE_DIR.parent.parent
sys.path.append(str(external_root))

这样Python就能在external_root目录下找到manage_db和g这两个包。

3. 保持原有导入语句即可

修正sys.path后,你原来的导入语句是正确的,无需修改:

from g.globals import Globals
from manage_db.execute_get_symbols import get_symbols

可选:验证路径正确性

如果仍报错,可在settings.py中打印路径确认是否正确:

print(f"External packages root: {external_root}")
print(f"Does manage_db exist? {os.path.exists(os.path.join(external_root, 'manage_db'))}")
print(f"Does g exist? {os.path.exists(os.path.join(external_root, 'g'))}")

运行Django项目时查看控制台输出,确认路径指向的是正确目录。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:45:30