我想在我的文件系统的上两个目录和下一个目录中加载一个名为 mymodule
的模块。我在其他地方用过
import sys
sys.path.append('../mydirectory')
import mymodule # in mydirectory
为了向上一个目录,然后向下一个目录(在一个包中)来获取一个模块,所以我希望这能起作用:
import sys
sys.path.append('../../mydirectory')
import mymodule
但是,我收到 ModuleNotFoundError:“没有名为 'mymodule' 的模块”
。我很困惑,因为我在上一个(工作)程序所在目录的下一个目录中运行了它。 (我尝试添加 __init__.py
但没有帮助。)有谁知道为什么这不起作用?有什么建议吗?
最佳答案
这是我的首选方法:
import sys
from pathlib import Path
HERE = Path(__file__).parent
sys.path.append(str(HERE / '../../mydirectory'))
使用__file__
我不依赖当前工作目录作为相对路径的起点 - HERE
是当前文件所在的目录。
当然你不必使用pathlib
module .
关于python - 在Python包中导入一个上两下一层目录的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44601883/