我想在一个目录中加载一个名为mymodule
的模块,然后在我的文件系统中的一个目录下加载。在其他地方我用过
import sys
sys.path.append('../mydirectory')
import mymodule # in mydirectory
为了上升一个,然后在一个目录(在一个包中)下来获取一个模块,所以我希望这个工作:
import sys
sys.path.append('../../mydirectory')
import mymodule
但是,我得到ModuleNotFoundError: "No module named 'mymodule'"
。我感到很困惑,因为我在一个目录中运行了这个目录,该目录来自我之前(工作)程序的目录。 (我尝试添加__init__.py
,但它没有帮助。)有谁知道为什么这不起作用?有什么建议吗?
答案 0 :(得分:2)
这是我的首选方法:
import sys
from pathlib import Path
HERE = Path(__file__).parent
sys.path.append(str(HERE / '../../mydirectory'))
使用__file__
我不依赖当前工作目录作为相对路径的起点 - HERE
是当前文件所在的目录。
当然,您不必使用pathlib
module。