【发布时间】:2014-05-22 05:59:56
【问题描述】:
我有这种文件结构(目录和箭头文件之后):
model -> py_file.py
report -> other_py_file.py
主__init__.py:
import model
import report
模型目录:
import py_file
报告目录:
import other_py_file
现在在other_py_file 我想导入py_file,但是无论我尝试什么,我都会给出错误,即没有这样的模块。
我试过这个:
from model import py_file
然后:
import py_file
看起来这两个文件夹没有看到对方。从其他目录导入文件的方法是什么?我是否需要在 init.py 文件中指定一些额外的导入?
【问题讨论】:
-
您不能在文件夹结构中向后导入,您的结构旨在从根目录使用并执行
import report,这将导入other_py_file.. 执行import ../model将不起作用。 -
@Torxed 使用您提供的链接找到了方法。我需要使用从应用程序文件夹名称导入,例如:
from my_app.model import py_file。我尝试了类似from addons.my_app.model import py_file的东西。当这不起作用时,我认为我需要做其他事情并跳过仅从应用目录导入的部分。 -
请查看下面的解决方案。我认为它更适合您的编程模型。
-
@Torxed 我认为更好的解决方案是仅使用链接中提供的答案之一中的特定路径,因为主要是我不需要以我现在需要的方式导入许多文件。
-
我的答案使用特定(绝对)路径,并且可以与
os.walk()结合使用,例如,如果您想动态导入内容,或者只是创建一个def superimport(name, path):并为您想要的每个模块调用它导入。只是一个想法。
标签: python openerp python-import