【发布时间】:2016-04-10 03:36:17
【问题描述】:
在 Stack Overflow 上多次询问 Python 项目的目录结构的问题(例如 here、here 和 here)
并且给出了许多答案。但是在任何这些答案中似乎都不清楚的一件事是为什么有些项目有重复的目录。比如经常被引用的this article,建议的布局是:
<root>/
|-- Twisted/
| |-- __init__.py
| |-- README
| |-- setup.py
| |-- twisted/
| | |-- __init__.py
| | |-- main.py
| | |-- test/
| | | |-- __init__.py
| | | |-- test_main.py
| | | |-- test_other.py
| | |-- bin/
| | | |-- myprogram
在本例中,/Twisted/twisted/main.py 是主文件
但是另一方面你有建议like this:
由于新的捆绑应用程序模板,许多开发人员的存储库结构不佳。
<root>/
|-- samplesite/
| |-- manage.py
| |-- samplesite/
| | |-- settings.py
| | |-- wsgi.py
| | |-- sampleapp/
| | |-- models.py
不要这样做。
重复的路径会让您的工具和开发人员感到困惑。不必要的嵌套对任何人都没有帮助。让我们正确地做:
<root>/
|-- manage.py
|-- samplesite/
| |-- settings.py
| |-- wsgi.py
| |-- sampleapp/
| |-- models.py
我的问题不一定是“哪种方式更好?”,因为每种方式都可能有利或有弊。
相反,我的问题是,如果我采用更简化的第二种样式,我会失去什么?是否有充分的理由拥有 /<root>/Twisted/twisted/main.py 目录结构而不仅仅是 /<root>/twisted/main.py ?是否可以更轻松地共享我的应用程序或使import 流程更顺畅?还有什么?
【问题讨论】:
标签: python packages python-import directory-structure subdirectory