使用命名空间构建结构项目

时间:2012-05-13 19:32:28

标签: python namespaces fabric

我现在越来越频繁地使用面料,我喜欢它。到目前为止,我的结构脚本往往相对较短且是临时的。它完成了工作,没关系。与那些更精细的工具相比,这就是我喜欢的。

我现在正在尝试将一组脚本组合在一起,并希望使它们更易于访问和使用。 Namespaces似乎是要走的路,它看起来简单而优雅。

目前,对我而言,这个难题的缺失部分是放置不同结构任务所需的各种模板和配置文件(有些可能共享),以及如何共享功能或子任务之间的任务

我是否需要设置一些PYTHONPATH或修改系统的路径以使其可以从所有子模块中访问?是否有建议的结构(或最佳实践指南)来建立这样的面料项目?

1 个答案:

答案 0 :(得分:1)

我主要使用常规python导入来完成此任务。

例如,如果您的目录结构是:

mytoplevel/
├── __init__.py
├── mydeploymenttasks.py
└── templates
    ├── __init__.py
    └── mytemplate.mak

您可以使用以下内容获取模板:

import pkg_resources
pkg_resources.resource_filename('mytoplevel.templates',mytemplate.mak)

但是由于任务存在于常规python模块中,您只需使用包的结构导入它们:

from mytoplevel.mydeploymenttasks import installApplicationTask

至于如何构建包,这取决于它的域。如果您发现某个主题在您的代码中增长,请将其分解为自己的模块。