【问题标题】:Accessing other files in various locations inside a given file?访问给定文件内不同位置的其他文件?
【发布时间】:2025-12-30 18:40:11
【问题描述】:

我有以下文件夹结构(这是给我的,预计会保留,所以我无法重新组织任何东西)。

Folder1
    Folder2.py
        File1
        Folder3
            File2.py
            File3.py

我在 File2 中工作,并且想从 File2 中的 File1 和 File3 导入函数/类。我试着做from Folder1.Folder2.File1 import Class1from Folder1.Folder2.Folder3.File3 import Func1。如果我在终端中并将我的目录更改为 Folder3,这样我就可以从终端运行 python File2.py,我如何正确地从 File1.py 和 File3.py 导入?我应该在终端中以不同的方式运行文件吗?现在我收到错误No module named Folder1。本质上,我想访问 1) 上一级文件夹中的文件 (File1) 和 2) 同一级别 (File3) 中的不同文件。我该怎么做呢?由于我不经常使用终端,我希望尽可能具体的说明,如果可以的话,请使用我提供的结构/命名。谢谢!

【问题讨论】:

    标签: python import directory subdirectory sys


    【解决方案1】:

    如果您在 Linux 中运行它,那么您可以在文件 env.py 中执行类似的操作并在程序调用的起点导入该文件,然后您可以正常导入 File1..etc 而不会有任何麻烦

    import os
    import sys
    root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.append(os.path.join(root_path, 'Folder1'))
    sys.path.append(os.path.join(root_path, 'Folder1', 'Folder2'))
    sys.path.append(os.path.join(root_path, 'Folder1', 'Folder2', 'Folder3'))
    

    【讨论】: