python - 在Python包中导入一个上两下一层目录的模块

标签 python python-3.x python-module sys

我想在我的文件系统的上两个目录和下一个目录中加载一个名为 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/

相关文章:

python - 获取 Python 模块中的数据成员,如 help() 所做的那样

python - 0 位置参数,但给出了一个,但为什么

python - 使用 Python 3 中的列表理解从单行输入读取整数列表以及范围

java - 生成其他脚本的脚本

python-3.x - 为什么 tf.keras model.fit() 初始化需要这么长时间?如何优化?

python - 警告 : QT_DEVICE_PIXEL_RATIO is deprecated

python - Jira-Python - jira.client 导入错误

python - 如何使用 Python 将 JPG 图像转换为 AVIF

Python ConfigParser - 跨模块使用

Python 导入模块、文件夹结构