如何修复导入的路径解析

How to Fix Path Resolution for Imports

当我将我的部分合并到一个更大项目的拉取请求中时,我在将包导入项目时遇到了问题。 runner.py 利用目录 2 中每个子目录中的模块和脚本。子目录中的一些模块现在需要访问目录 1 和目录 3 中的模块。

我试过附加系统路径,这不是正确的方法,但这似乎对某些事情有效并破坏了其他事情。我已尝试指定父目录,但这似乎不起作用,因为 Python 更改了调用时的工作目录。因此,如果我从 Project Directory 开始并执行 python Dir_2/runner.py,我的实际工作目录将是 Project Directory/Dir_2 而不是项目目录。如果我 sys.path.append(os.getcwd()) 我中断了一些标准库导入。我在这里错过了什么?

我尝试过的事情

项目的形状

不要 运行 子目录中的文件就好像它们是脚本一样。如果它是包结构的一部分,它是一个 模块 ,而不是一个脚本,所以 运行 它是一个:

python -m dir2.runner