【问题标题】:Importing __init__导入 __init__
【发布时间】:2014-12-12 22:47:49
【问题描述】:

我正在this中尝试答案。

名为MyLibs 的文件夹中的__init__.py 文件包含:

LogFile = r'D:\temp'

同一文件夹中的utils.py MyLibs,我尝试了各种方法来访问LogFile 变量:

from __init__ import *
print LogFile     #Gives: NameError: name 'LogFile' is not defined`:

和:

import __init__
print MyLibs.LogFile    #Gives: NameError: name 'MyLibs' is not defined

执行from MyLibs.utils import *时出现错误

我必须做的修复是什么?我更喜欢一种可以直接引用LogFile而无需添加命名空间前缀的方法。

【问题讨论】:

  • __init__.py 是一个包初始化器,通常不直接导入。为什么不导入MyLibl本身
  • 另一个问题给了你不好的建议。我已就接受的答案留下了反馈。
  • 对不起,我的错误。我发现更新后的 init.py 没有被调用。我需要启动一个新的 Python 会话才能使其工作。虚惊一场。

标签: python python-2.7


【解决方案1】:

我的错。

更新后的__init__.py 不知何故未执行。我开始了一个新的 Python 会话,它成功了。

抱歉误报。

【讨论】:

    【解决方案2】:

    不确定如何使用 2.7 的隐式相对导入来做到这一点,但你可以试试这个:

    from __future__ import absolute_import
    from . import LogFile
    

    如果您直接运行 Python 模块,则需要使用 python -m MyLibs.utils 而不是 python MyLibs/utils.py 运行它。

    【讨论】:

      猜你喜欢
      • 2015-07-30
      • 2016-06-14
      • 2017-03-12
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 2017-07-25
      相关资源
      最近更新 更多