导入一个距离当前目录几个文件夹的用户自定义模块。

18 浏览
0 Comments

导入一个距离当前目录几个文件夹的用户自定义模块。

这个问题已经有了答案

可能是重复的问题:

如何在Python中进行相对导入?

所以,我正在尝试包含一个在我的Python文件的上一级目录和多个文件夹中的模块。

因此,文件夹的层次结构如下:

\Folder\
    \Folder\First\
        \Folder\First\myPythonFile.py
    \Folder\Second\
        \Folder\Second\AnotherFolder\
            \Folder\Second\AnotherFolder\addedFile.py

我想将addedFile.py包含到myPythonFile.py中。 我不确定如何实现这一点。

admin 更改状态以发布 2023年5月21日
0
0 Comments

自 Python 2.5(也许是2.4)以来,可以使用相对导入。

如果在SecondSecond\AnotherFolder文件夹中添加两个空的__init__.py文件,则可以根据PEP 328编写:

 from ..Second.AnotherFolder.addedFile import eggs

myPythonFile.py中以导入所需的模块(例如eggs)

(将__init__.py文件添加到文件夹中会将它们转换为包)

另一种方法

如果您不想为Second文件夹创建包,则可以更改sys.path以包括Second\AnotherFolder文件夹:

import sys
import os
sys.path.append(sys.path.append(os.path.abspath('../Second/AnotherFolder')))
import addedFile

但我不鼓励这种方法,原因在这里进行了解释。

0