簡體   English   中英

從Python包中的根__init__.py導入變量

[英]Import Variable from root __init__.py in a Python Package

我有一個__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

似乎失敗了。

謝謝

您只需使用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

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM