通过相对路径全局变量模块导入

时间:2017-10-04 17:34:47

标签: python import path global-variables relative

这是我的目录结构:

 .
`-- parent
    |-- child
    |   |-- globalvar.py
    |   |-- __init__.py
    |   `-- subchild
    |       |-- __init__.py
    |       `-- module.py
    `-- main.py

子目录中的globalvar.py包含我想在我的应用程序中使用的全局变量:

globalvar.py

def variables():
        global event_id

        event_id = 2100

在main.py中,我通过import调用globalvar.py来初始化(child.globalvar.variables):

main.py

import child.globalvar
from child.subchild.module import display

child.globalvar.variables()

display()

这是我在子目录下的module.py文件中的内容:

from ..globalvar import variables

def display():

        print globalvar.event_id

这是我执行main.py时获得的回溯:

追踪(最近一次呼叫最后一次):

  File "main.py", line 6, in <module>
    display()
  File "/parent/child/subchild/module.py", line 5, in display
    print globalvar.event_id
NameError: global name 'globalvar' is not defined

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我可以通过更改module.py文件中的import语句来修复它:

<强> BEFORE:

from ..globalvar import variables

<强> AFTER:

from .. import globalvar