2017-07-27 50 views
1

下面是代码的结构:如何访问__init__.py中定义的(全局)变量?

my_project 
├── __init__.py 
├── main.py 
└── util 
    ├── __init__.py 
    └── utility.py 

当我通过python3 my_project/main.py运行程序。

我在my_project/__init__.py中定义了my_variable = 5

我想访问此my_variablemain.pyutility.py

,但不知道该怎么做....

我跟着Can I use __init__.py to define global variables?,但它不为我工作(无法导入项目目录文件夹...它发生错误:ImportError: No module named 'MY_PROJECT_DIR' ..

你能帮这一点?

+1

你能否展开* “它不工作” *用[MCVE] – jonrsharpe

+0

'import my_project; print(my_project.my_variable)' –

+0

@ juanpa.arrivillaga无法将'my_project'导入到'main.py'中......它说'没有名为'my_project'的模块...' – user3595632

回答

1

为此,您应该使用相对进口。此外蟒蛇治疗脚本和模块不同

内容的my_project/__init__.py

my_variable = 5

内容的my_project/util/utility.py

从进口my_variable
打印( “my_variable”,my_variable)

内容..

my_project/main.py

自。进口my_variable
打印( “my_variable”,my_variable)

运行此作为模块

$ python3 -m my_project.util.utility 
my_variable 5 
$ 
$ python3 -m my_project.main 
my_variable 5