如何从其他目录导入.py文件?

时间:2014-04-09 07:29:09

标签: python openerp python-import

我有这种文件结构(目录和箭头文件之后):

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文件中指定一些其他导入?

2 个答案:

答案 0 :(得分:50)

您可以在运行时添加到系统路径:

import sys
sys.path.insert(0, 'path/to/your/py_file')

import py_file

这是迄今为止最简单的方法。

答案 1 :(得分:18)

Python3:

import importlib.machinery

loader = importlib.machinery.SourceFileLoader('report', '/full/path/report/other_py_file.py')
handle = loader.load_module('report')

handle.mainFunction(parameter)

此方法可用于在文件夹结构中导入您想要的任何方式(向后,向前并不重要,我使用绝对路径只是为了确定)。

感谢Sebastian为Python2寻找类似的答案:

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()