2012-03-07 112 views
0

項目中有這麼多目錄,我希望每個.py文件在單獨的目錄中正確導入其他文件。如何在python項目中初始化系統路徑變量

我想這

PREFIX = normpath(dirname(dirname(dirname(abspath(__file__))))) 
if PREFIX not in sys.path: 
    sys.path = [PREFIX] + sys.path 

當我要導入其他目錄variables,我只是導入此file.but它可能是太冗長。

有沒有更好的方式來更好地解決它(除了將項目路徑導出到全局系統的路徑)?

回答

0

import statement包括對packages的支持 - 使用__init__.py標記排列在目錄中的文件(模塊)。

提供對相對包層次結構(使用前導點)的支持, ,以便絕對模塊引用不是必需的。

指定要導入的模塊時您不必指定模塊的絕對名稱。當一個模塊或包被包含在另一個包中時,可以在相同的頂層包中進行相對導入,而不必提及包名。 通過在指定的模塊或程序包中使用前導點,您可以指定向上遍歷當前程序包層次結構的高度,而不指定確切名稱。一個領先的點意味着當前的模塊進行導入存在的包。兩點意味着一個包級別。三個點上升兩級,等等。因此,如果您從pkg包中的模塊執行from . import mod,那麼您將最終導入pkg.mod。如果您從pkg.subpkg1內執行from ..subpkg2 import mod,則將導入pkg.subpkg2.mod。相關進口規格包含在PEP 328之內。

您可以安排這些項目的子包,並使用類似的相對進口 from ..subpkg2 import modsubpkg2 (在同一個水平從任何其他子包)使用變量從mod