我想从位于当前目录之上的文件中的类继承。
是否可以相对导入该文件?
我想从位于当前目录之上的文件中的类继承。
是否可以相对导入该文件?
当前回答
@alex-martelli用pathlib优化的答案:
import pathlib
import sys
_parentdir = pathlib.Path(__file__).parent.parent.resolve()
sys.path.insert(0, str(_parentdir))
import module_in_parent_dir
sys.path.remove(str(_parentdir))
其他回答
@alex-martelli用pathlib优化的答案:
import pathlib
import sys
_parentdir = pathlib.Path(__file__).parent.parent.resolve()
sys.path.insert(0, str(_parentdir))
import module_in_parent_dir
sys.path.remove(str(_parentdir))
从一个恰好比当前目录高一级的目录导入模块:
from .. import module
运行python /myprogram/submodule/mymodule.py,导入/myprogram/mainmodule.py,例如via
from mainmodule import *
在Linux上(例如,在python Docker映像中),我必须将程序根目录添加到PYTHONPATH:
export PYTHONPATH=/myprogram
您可以使用sys.path.append()方法将包含包的目录添加到搜索模块的路径列表中。例如,如果包位于当前目录以上两个目录,您可以使用以下代码:
import sys
sys.path.append("../../")
如果包位于当前目录上方的一个目录,你可以使用下面的代码:
import sys
sys.path.append("..")
import sys
sys.path.append("..") # Adds higher directory to python modules path.