包是一个目录,其中包含一个__init__.py
。与目录的区别在于您可以导入它。
本身并没有“Python 方式”,但您会发现将所有模块放在一个包中并使用与项目相关的名称是一个好主意。
此外,要遵循 Python 样式指南 PEP8,包和模块名称应全部小写。因此,如果我们假设该项目被称为“Botond Statistics”,您的结构将是这样的:
botondstats/
indicators/
moving_averages.py
stochastics.py
strategies/
moving_averages_cross.py
example.py
然后,您将通过执行找到 Stochastics 类
from botondstats.indicators.stochastics.Stochastics
(有多种方法可以保持结构但使导入更短,但这是另一个问题)。
如果你愿意,你可以把这个结构放在下面src/
,但这不是必需的。我从来没有做。相反,我有一个主目录:
BotondStatistics/
docs/
botonstats/ # the above structure
setup.py # Distutils/distribute configuration for packaging.
在这个目录中,我通常也有一个 virtualenv,所以我实际上也有 bin/lib/ 等。开发通常通过运行来完成
./bin/python setup.py tests
当我使用 Distrubute 测试运行器来运行测试时。
我就是这样做的。:-)