python:使用本地模块导入另一个名为same的项目模块

时间:2013-05-28 07:46:42

标签: python import

我有两个python项目。第一个是位于/path/to/project1/的django项目,其文件结构如下:

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

我还有另一个项目,比如project2。在这个项目中,我想从project1.policy.models导入一些定义。 e.g。

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

然而,问题是,在project2中,还有一个名为policy的目录,导致ImportError。我无法重命名policy的目录名称。 我尝试绝对导入,即from __future__ import absolute_import但不起作用。

BTW,我的python版本是2.6.1

2 个答案:

答案 0 :(得分:3)

您可以使用以下内容来实现目标:

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

 project2/
     test_file.py
     policy/
         __init__.py

以上是您的目录结构。添加了 project1 / 下的 _ init _。py ,以便您可以导入project1。现在在test_file.py中,您可以执行以下操作来实现目标:

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

答案 1 :(得分:0)

更改您的设置,以便您可以执行此操作:

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

只需在__init__.py/path/to/project1中添加空/path/to/project2即可。