python:导入另一个与本地模块名称相同的项目模块

标签 python import

我有两个 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/

相关文章:

go - 为什么Go在项目子目录中找不到导入包?

javascript - 在 angular2 中是否可以在全局位置导入 CommonModule 和 RouterModule 以提高应用程序速度

python - 如何将两个列表合并为 python 中的一系列列?

java - PCollection 与其自身的笛卡尔积

java - 如何在java中导入javax?

python - ImportError : No module named test_data, 但 test_data.py 与 PyCharm 下的 test.py 在同一目录中使用 virtualenv

python - 如何优化/简化堆排序 Django 对象? (不能使用模块和数据库排序)

Python 按元组中值的长度对列表进行排序

python - 有没有办法在 mongodb 中获取集合的所有字段名称?

python - 如何将扫描文本中的数据导入 Django 模型