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

如何从主目录向子子目录导入Python模块并调用函数?

Python跨目录导入Database类的解决方案

你的项目结构:

start.py
database.py
cogs/
    __init__.py
    Utility/
        __init__.py
        utility.py

以下是几种可行的解决方法:

方法1:手动添加主目录到Python路径

在cogs/Utility/utility.py开头添加以下代码,将项目主目录加入Python的搜索路径,之后就能直接导入Database类:

import sys
import os
# 回溯到项目主目录(当前文件 → Utility → cogs → 主目录)
project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(project_root)

from database import Database

方法2:使用相对导入(需通过主脚本启动)

如果你的项目始终通过主目录的start.py启动(而非直接运行utility.py),可以用相对导入:

from ...database import Database

注意:直接运行utility.py会触发相对导入错误,因为此时它被视为顶层脚本而非包的一部分,必须通过start.py间接加载该模块。

方法3:设置环境变量PYTHONPATH

将项目主目录设置为PYTHONPATH环境变量,让Python全局识别该路径:

  • Linux/macOS终端:
    export PYTHONPATH=/你的项目主目录绝对路径
    
  • Windows命令行:
    set PYTHONPATH=C:\你的项目主目录绝对路径
    

设置完成后,在utility.py里直接写:

from database import Database

以上三种方法都能支持未来在cogs下添加更多子文件夹的场景,无需额外修改导入逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:40:37