导入文件夹之外的用户制作模块[重复]

Posted

技术标签:

【中文标题】导入文件夹之外的用户制作模块[重复]【英文标题】:Importing a user-made module that's folders away [duplicate] 【发布时间】:2013-01-20 16:25:32 【问题描述】:

可能重复:How to do relative imports in Python?

所以我试图包含一个模块,它是我的 python 文件中的一个文件夹,然后是多个文件夹。

所以文件夹层次结构如下:

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

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

【问题讨论】:

Second 是 python 包吗?是否应该将其添加到 virtualenv 或您的 PYTHONPATH 以便可以从任何地方访问? 【参考方案1】:

在 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

但我不赞成这种做法,原因解释here。

【讨论】:

以上是关于导入文件夹之外的用户制作模块[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 tkinter 打开其他 Python 3 文件 [重复]

如何制作配置文件以导入相同的模块以进行多个玩笑测试?

Python 3模块从另一个文件夹导入错误[重复]

主目录之外的React-Native导入文件

pyhon模块制作及导入

如果放在模块中,Python 无法导入名称 [重复]