2012-05-08 118 views
0

我有以下目錄結構:相對進口

目錄名稱test_app

|-- __init__.py 
|-- manage.py 
|-- models.py 
|-- views.py 

我有一個很基本的問題要問,我把我的__init__.py

內的下列值
alpha = "123" 
beta = "546" 

如何獲取模型,視圖和管理中的alpha和beta值? 我試過如下:

from . import alpha 

from test_app import alpha 

他們兩人沒有工作,我該怎麼辦呢?

+1

你有沒有加''。到你的pythonpath? – tapan

+0

兩者都應該工作。我實際上是在自己的項目應用中使用'from app_name import some_var'。不知道爲什麼它不適合你。你有什麼錯誤? –

回答

4

__init__.py通常爲空,表示目錄中的文件,在這種情況下,可以導入test_app。你可以把你的價值在另一個.py文件(例如:constants.py)並執行以下操作:

|-- __init__.py 
|-- manage.py 
|-- models.py 
|-- views.py 
|-- constants.py 

然後導入常量:

from test_app import constants 

constants.py的內容將是

alpha = "123" 
beta = "546" 

那麼你就可以使用什麼都值您存儲在常量

print(constants.alpha) 
print(constants.beta) 
0

我不知道我把常量或東西我需要包括在__init__.py,但這:

from __init__ import things 

將罰款導入在__init__.py定義things

的原因,我不會做,這是經常Python包使用__init__.py來控制哪些是通過from package.name import *出口在這種情況下,您的常量也將出口 - 這是很好的,如果這就是你想要的,但糟糕,如果不是。

+0

有沒有辦法將全局變量放在文件夾的比例尺上,我的意思是說我把一個值和所有文件都可用,在我的情況下,我有一個麻煩,即進口應該是順序的,上面是一個簡化版本我在做什麼。所以對我來說,這個要求是很少的變量,可以從不同的文件以相同的方式訪問。有出路嗎? – user993563

+0

@ user993563是的 - 你上面的答案建議爲此目的聲明一個文件,'consts.py' - 這是完全可以接受的。實際上,你可以把它們放在你現有的文件中,然後從其他文件中導入它們。 – 2012-05-08 20:31:47