2017-07-27 47 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