django - 如何将一个目录中的类导入另一个目录的子目录
问题描述
我目前正在尝试将一个目录中的类导入到另一个目录的子目录中。我尽量不使用 sys.path 并使用相对导入,但是它不断给出关于尝试相对导入但不知道父包的错误。所以我不知道将一个类从项目树中更高级别的目录导入到不同目录的孙子是否可行?在这种情况下,我想将 app 文件夹中的一个类导入ModelTest
到model.py
output.py 中。__init__.py
除 myproject 目录外,所有子目录都有。
谢谢
这是我的项目树,app 和 mainModel 处于同一级别:
myproject
/mainModel
/api
/script
/output.py
/app
/model.py
Django REST 框架
解决方案
如果您尝试from ....app.model import ModelTest
从 开始myproject/mainModel/api/scripts/output.py
,那么这将不起作用:
from .sibling_module import something
尝试从“当前包的something
兄弟模块”导入( )sibling_module
myproject/mainModel/api/scripts/sibling_module.py:something
from ..sibling_of_current_package import foo
:转到“当前模块当前包的父包”,然后转到模块“sibling_of_current_package”- ...
- 这里的关键部分是“来自/来自PACKAGE的东西”,而你没有
myproject/__init__.py
, 所以app
和mainModel
是顶级包。
这意味着您不能使用相对导入“导入超出它们的任何内容”。因此,在您的情况下,您需要使用绝对导入(from app.model import ModelTest
)
推荐阅读
- python - 如何访问 Python 列表中每个循环的三个项目?
- graphql - 我可以在 graphql 游乐场中将一个变量分配给突变的结果吗
- google-apps-script - 脚本要么给出 429 错误(请求太多),要么耗时太长。如何链接函数调用?
- r - 无法对 R 中的数据框应用 t 检验
- sql - BigQuery 插入值 AS,假定缺失列为空
- python - 如何使用opencv自动随机生成类似划痕的线条
- javascript - 表示 GraphQL 模式的最佳方式
- java - Grails 3.x 和 2.5.x 以及 java 11 兼容性问题
- php - 自动同步多个不同表结构的sql表
- c# - 我们可以在 .Net 核心上使用 iText 7 将 pdf 转换为 docx 吗?