我有两个 python 项目。第一个是位于 /path/to/project1/
的 django 项目,具有以下文件结构:
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__ importabsolute_import
但不起作用。
顺便说一句,我的Python版本是2.6.1
最佳答案
您可以使用以下方法来实现您的目标:
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
关于python:导入另一个与本地模块名称相同的项目模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16786563/