1

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

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

我还有另一个项目,比如说project2。在这个项目中,我想从project1.policy.models. 例如

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

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

顺便说一句,我的 python 版本是 2.6.1

4

2 回答 2

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
于 2013-05-28T08:17:47.423 回答
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

于 2013-05-28T08:15:34.867 回答