嵌套路径导入的 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.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 脚本或程序包中。
我有一个包含多个子目录的项目,如下所示:
/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.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 脚本或程序包中。