我有一个小型web框架,我们称之为Bread,用于构建像Jam、Marmalade、PeanutButter和其他配料这样的应用程序。Bread既可以构建这些应用程序,也可以提供它们。
我正在尝试弄清楚如何使这些应用程序的
我正在尝试弄清楚如何使这些应用程序的
setup.py
能够正常工作,满足以下要求:
- 这些应用程序依赖于Bread,通过setuptool's install_requires。
- 在开发时构建应用程序时,Bread会读取一些配置,然后将资产(HTML、JS、CSS、图像等)发出到应用程序的
output
目录。换句话说,bread devserver
读取Jam/bread.yaml
并在Jam/output
中组装资产,然后通过Flask提供应用程序服务(但这与其他无关)。 - 为了构建一个可部署的Jam应用程序,我想在Jam的
python setup.py install
期间调用Bread来构建Jam/output
。在生产环境中,Jam不需要构建任何内容。 - 我定义了一个自定义的
bdist_egg
设置命令,其中initialize_options
导入Bread,调用构建器,然后使用适当的元组设置self.distribution.data_files
,最后调用基类。(而且那真的很有趣。) - 现在,
bdist_egg
在Jam的setup.py
中定义。我想将此和其他样板代码移动到bread.setup
中,以便我可以在Marmalade、PeanutButter等中重用它。 - 潜在地,这意味着我现在正在导入Bread代码,在Bread被安装之前。这肯定会在干净的安装中出现,例如在构建机器上的新虚拟环境中。