在 Python 包中向上两个向下一个目录导入模块
import a module up two and down one directory in Python package
我想加载一个名为 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
但没有帮助。)有谁知道为什么这不起作用?有什么建议吗?
这是我的首选方法:
import sys
from pathlib import Path
HERE = Path(__file__).parent
sys.path.append(str(HERE / '../../mydirectory'))
使用 __file__
我不依赖当前工作目录作为相对路径的起点 - HERE
是当前文件所在的目录。
当然可以不用pathlib
module.
我想加载一个名为 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
但没有帮助。)有谁知道为什么这不起作用?有什么建议吗?
这是我的首选方法:
import sys
from pathlib import Path
HERE = Path(__file__).parent
sys.path.append(str(HERE / '../../mydirectory'))
使用 __file__
我不依赖当前工作目录作为相对路径的起点 - HERE
是当前文件所在的目录。
当然可以不用pathlib
module.