And*_*ius 30 python python-import openerp
我有这种文件结构(目录和箭头文件后):
model -> py_file.py
report -> other_py_file.py
Run Code Online (Sandbox Code Playgroud)
主要__init__.py:
import model
import report
Run Code Online (Sandbox Code Playgroud)
型号目录:
import py_file
Run Code Online (Sandbox Code Playgroud)
报告目录:
import other_py_file
Run Code Online (Sandbox Code Playgroud)
现在在other_py_file我想要导入py_file,但是我尝试了什么,我给出错误,没有这样的模块.
我试过这个:
from model import py_file
然后:
import py_file
看起来这两个文件夹看不到对方.从其他目录导入文件的方法是什么?我是否需要在init .py文件中指定一些额外的导入?
Ale*_*ton 53
您可以在运行时添加到系统路径:
import sys
sys.path.insert(0, 'path/to/your/py_file')
import py_file
Run Code Online (Sandbox Code Playgroud)
这是迄今为止最简单的方法.
Tor*_*xed 19
Python3:
import importlib.machinery
loader = importlib.machinery.SourceFileLoader('report', '/full/path/report/other_py_file.py')
handle = loader.load_module('report')
handle.mainFunction(parameter)
Run Code Online (Sandbox Code Playgroud)
此方法可用于在文件夹结构中导入您想要的任何方式(向后,向前并不重要,我使用绝对路径只是为了确定).
荣誉对塞巴斯蒂安的spplying为Python2了类似的回答:
import importlib
module = importlib.load_module('folder.filename')
module.function()
Run Code Online (Sandbox Code Playgroud)