【问题标题】:Import Variable from root __init__.py in a Python Package从 Python 包中的根 __init__.py 导入变量
【发布时间】:2016-03-10 20:29:33
【问题描述】:

我有一个__init__.py 文件,并在我的包中声明了以下内容。

代码如下:

from __future__ import absolute_import
from __future__ import division
from . import web
IGNORE_SSL_ERRORS = False

我的项目结构包含许多子级别的包,例如上面提到的web。这是基本结构:

dynamical (root package)
   -> __init__.py
   -> web
      -> __init__.py
      -> _func.py

为了方便用户使用,我希望像 IGNORE_SSL_ERRORS 这样的项目级常量向个人公开,可以设置脚本以针对不安全的站点进行代码测试。

我在将变量 IGNORE_SSL_ERRORS 导入到 _func.py 时遇到问题。

由于它位于包的根目录,我该如何导入它?

from .. import IGNORE_SSL_ERRORS

似乎失败了。

谢谢

【问题讨论】:

    标签: python package python-import


    【解决方案1】:

    您只需使用sys.path.append() 将根包文件夹添加到sys.path

    所以在你的_func.py 文件中你可以使用这个:

    if __name__ == '__main__' and __package__ is None:
        from os import sys, path
        pth = path.dirname(path.dirname(path.dirname(path.abspath(__file__))))
        sys.path.append(pth)  # pth is your 'dynamical' folder
        from dynamical import IGNORE_SSL_ERRORS
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      相关资源
      最近更新 更多