从包中的文件访问变量,存储在包的初始化中

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 类错误。该消息通常有很大帮助。