从包中的文件访问变量,存储在包的初始化中
Accessing variable, stored in package's init from file in package
我在这个包的 __init__
文件中有一个名为 pkg
的包和一个名为 arr
的数组。
另外,我在这个包中有文件 file.py
,我在其中写 from pkg import arr
但它抛出 ImportError
。如何正确导入数组?
树看起来像这样
pkg
- file.py
- __init__.py
__init__.py
arr = ['a', 'b', 'c']
file.py
from pkg import arr # ImportError raises here
print (arr)
如果您想以这种方式访问列表 arr
。文件 file.py
应该在基本目录中而不是在包中。
因此树应该是:
base
- pkg
- __init__.py
- file.py
或者,如果您想从包内部访问列表,导入语句应如下所示:
from __init__ import arr
__init__.py
定义您的包裹从外面看起来如何。
尝试像这样导入 from . import arr
,这基本上意味着从当前模块导入 arr
。
询问错误时,您还应该提供错误消息,ImportError
是不够的。它可能是 circular-import 相关错误或 missing-library 类错误。该消息通常有很大帮助。
我在这个包的 __init__
文件中有一个名为 pkg
的包和一个名为 arr
的数组。
另外,我在这个包中有文件 file.py
,我在其中写 from pkg import arr
但它抛出 ImportError
。如何正确导入数组?
树看起来像这样
pkg
- file.py
- __init__.py
__init__.py
arr = ['a', 'b', 'c']
file.py
from pkg import arr # ImportError raises here
print (arr)
如果您想以这种方式访问列表 arr
。文件 file.py
应该在基本目录中而不是在包中。
因此树应该是:
base
- pkg
- __init__.py
- file.py
或者,如果您想从包内部访问列表,导入语句应如下所示:
from __init__ import arr
__init__.py
定义您的包裹从外面看起来如何。
尝试像这样导入 from . import arr
,这基本上意味着从当前模块导入 arr
。
询问错误时,您还应该提供错误消息,ImportError
是不够的。它可能是 circular-import 相关错误或 missing-library 类错误。该消息通常有很大帮助。