我有两个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
答案 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
即可。