pythonic风格的嵌套路径导入

时间:2017-09-13 10:49:37

标签: python linux python-import

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

/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__), '..'))

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

1 个答案:

答案 0 :(得分:2)

强烈建议不要与sys.path混淆。 Instead 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脚本或包中。