2013-05-28 123 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 
相关问题