2012-01-14 375 views
0

我在Python中使用Eclipse/PyDev作爲Django中的項目。在我的其中一個應用程序(比如app1)中,我有一個在models.py中定義的變量,其中有列表分配給它們。我無法將這些導入另一個應用程序的models.py(比如app2)。假定該項目名爲projectName。Python:導入變量失敗

PROJECTNAME/APP1/models.py

VARIABLE_NAME = (
    ('a', 'choice1'), 
    ('b', 'choice2'), 
) 

PROJECTNAME/APP 2/models.py

from projectName.app1.models import VARIABLE_NAME 

我未解決進口Eclipse中收到一個錯誤:VARIABLE_NAME

任何想法?

回答

1

找到了解決方案。正如Yanxhang指出的那樣,這是一個PYTHONPATH問題。在Eclipse的首選項中,在PyDev> Interpreter下,在System PYTHONPATH的底部窗口中,確保添加您的projectName的父文件夾,然後單擊apply。這允許projectName自行解析其所有子項。

1

PyDev的Eclipse API對我也是這樣。它有麻煩檢查是否從...進口...風格進口將實際上解決到一個真正的進口。這對我來說很正常。當你運行程序時,它可能會工作。如果沒有,這很可能是你的錯誤。

1

我認爲下面是發生了什麼事情:

1)Eclipse中看到你試圖導入,但項目名稱是不是一個包(除非你在sys.path中添加它明確),所以它正在很好的和抱怨你。

2)問題是projectName不應該是一個包;至少還沒有。根據https://docs.djangoproject.com/en/dev/ref/django-admin/,它說:「另外,manage.py ...將項目的包放在sys.path中。」

因此,我會忽略「錯誤」,即使Eclipse在技術上是正確的,你無法進行導入。 Django設置的重點在於當您執行「python manage.py runserver」時,projectName實際上可用,所以一切都很好。 =)