不确定我是否应该使用相对导入或将父目录添加到 sys.path

Not sure if I should use relative imports or add parent dir to sys.path

我有一个具有以下层次结构的包

my_package/__init__.py
           script_a.py
           scripts_dir/__init__.py
                       script_b.py
           my_package/__init__.py
                      module_a.py
                      module_b.py

module_a 和 module_b 包含我在 script_a 和 script_b 中使用的函数和 class 定义(它们是独立的脚本并包含主要)

当我从 module_a.py 导入一些东西时,在我的 script_a.py 中一切正常。

我的问题是

更新

根据我目前在 SO 中找到的答案,我得出的结论是我有 3 个选项

还有其他我不知道的选项吗?

myproject/
        |--package1
              |--\__init__.py
              |--script_a.py
              |--script_b.py
        |--package2
              |--module_a.py
              |--module_b.py

您可以使用以下两行将 myproject 路径附加到 sys 路径。可以避免相对导入,避免命令行中的-m

import sys
import sys.path.append("/absolute/path/to/your/myproject")

myproject 文件 script_a.py 中,如果你导入 module_a.py 它看起来像

import sys
import sys.path.append("/absolute/path/to/your/myproject")
import package2.module_a as ma