【问题标题】:Import modules in __init__.py在 __init__.py 中导入模块
【发布时间】:2019-07-09 15:46:20
【问题描述】:

这是我的目录树的样子:

one/
    config.py
    two/ 
        __init__.py
        A.py
        B.py

当我从AB__init__.py 中导入函数或类时,它必须是这样的:

from .A import func
from .B import cls

但是,从config.py 导入名称可以像这样直接进行:

from config import something

据我所知,既然. 表示“当前目录”,为什么from A import func 也不起作用?另一方面,config.py 位于__init__.py 的父目录上,from config import something 应该如何工作?那不应该是from ..config import something吗?我有点困惑。

【问题讨论】:

    标签: python import module package


    【解决方案1】:

    对于您问题的第一部分(为什么是 .A 而不是 A):如果您省略“.”,解释器将查找您的系统路径以查找模块。 对于第二部分:这篇文章可能会有所帮助 Import Script from a Parent Directory

    【讨论】:

    • 我觉得这只解决了第一个。至于第二个,为什么不加..从父目录导入模块?
    • 这取决于你如何运行你的代码。如果您的 main.py 位于“one”中,则首先您可能需要将“one”的目录插入 python 路径(绝对导入)。通过这样做,如果你从“A”调用“from config import something”,因为 config 已经位于你的 python 路径中,那么你不需要使用相对导入。请让我更多地了解您如何执行您的程序,以便我更具体
    猜你喜欢
    • 2016-06-14
    • 1970-01-01
    • 2015-07-30
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    相关资源
    最近更新 更多