嵌套路径导入的 pythonic 风格

pythonic style of nested path imports

我有一个包含多个子目录的项目,如下所示:

/opt/exampleProject/src
├── __init__.py
├── dir1
│    ├── __init__.py
│    ├── file.py
│    └── file2.py
└── dir2
    ├── __init__.py
    ├── file3.py
    └── file4.py

我的 main.py 文件放在这里

/usr/bin/main.py

我想知道导入 exampleProject 以供 main 使用的最干净的方法。 fileX.py 文件也相互导入,这里显示的更多。我想做的是将它添加到我的 $PYTHONPATH 中,这样 main.py 就可以导入它们。有什么办法吗?

我一直在考虑将它们全部单独添加。

 sys.path.append(os.path.join(os.path.dirname(__file__), '..'))

但我希望有一个很好的方法来做到这一点。

强烈建议不要乱用 sys.pathInstead create a package for /opt/exampleProject by creating a setup.py.

/opt/exampleProject
├── setup.py
└── src
    ├── __init__.py
    ├── dir1
    │   ├── __init__.py
    │   ├── file.py
    │   └── file2.py
    └── dir2
        ├── __init__.py
        ├── file3.py
        └── file4.py

之后使用

安装
pip install -e /opt/exampleProject

完成后你可以简单地做

import example_project

在任何其他 python 脚本或程序包中。