2013-05-28 178 views
1

我有兩個python項目。第一個是位於/path/to/project1/一個Django項目並具有以下文件結構:python:導入與本地模塊名稱相同的另一個項目模塊

project1/ 
|- policy/ 
|--- models.py 

我有另外一個項目,說project2。在這個項目中,我想從project1.policy.models導入一些定義。例如

sys.path.append('/path/to/project1/') 
from policy.models import SomeModel 

然而,問題是,在項目2,有也被命名policy的目錄,這導致一個ImportError。我無法重命名目錄名稱爲policy。 我嘗試絕對導入,即from __future__ import absolute_import,但不起作用。

順便說一句,我的Python版本是2.6.1

回答

0

更改設置,所以你可以這樣做:

sys.path.append('/path/to/') 
from project1.policy.models import SomeModel 
from project2.policy.models import SomeOtherModel 

只是增加在/path/to/project1__init__.py/path/to/project2會做。

3

您可以使用以下方法來實現自己的目標:

project1/ 
    __init__.py 
    policy/ 
     __init__.py 
     models.py (contains SomeModels) 

project2/ 
    test_file.py 
    policy/ 
     __init__.py 

上面是你的目錄結構。添加的是_ 初始化 _.py項目1/,以便您可以導入project1。現在在test_file.py中,您可以執行以下操作來實現您的目標:

sys.path.append('/path/to/project1/') 
from project1.policy.models import SomeModel 
相關問題