【发布时间】:2011-04-15 02:19:20
【问题描述】:
我在工作场所发布了一个包裹;它被大约 10 人使用。我有一个非常快速的开发/测试/发布周期(有时一天两次),并且我开始在我的环境中遭受越来越多的混乱。我想用virtualenv 和setuptools 之类的工具来管理这个环境,但我似乎没有得到想要的结果。
例如,我想在开发中使用“测试”数据库,但发布到“真实”数据库。大致如下:
if env == "devel":
dbpath = "/path/to/devel.db"
if env == "release":
dbpath = "/path/to/real.db"
同样,我有几个不同参数的配置文件用于开发和发布(今天忘记改一个,给整个团队发了几十封邮件!)。
我希望代码保持干净和分离,因此我不希望编写像上面介绍的那样的解决方案。
那么,您将如何创建一个工作流来管理它?我不希望依赖环境变量和__file__ 语句(但也许我应该这样做?)。
抱歉。我知道这不是一个非常聪明的问题,但我想以可靠的方式使用我可以使用的工具。
【问题讨论】:
-
file 有什么问题? )
-
@Mike Ramirez:我想这没什么问题,但它似乎过于依赖文件夹结构。如果我从
/sw/conf/更改为/allconf/conf/会怎样?然后我必须更新所有__file__计算。我想我更愿意给出一条路径。 -
如果您将
__file__计算放在一个位置,那么任何移动都只是一个变化。也许作为一个 DEBUG 变量? -
MYPROJROOT = os.path.abspath(os.path.dirname(__file__))然后导出 MYPROJROOT 以供系统的其余部分使用。在项目的根目录中完成的一项计算永远不需要更新。 -
@Mike:对于项目根目录,我实际上按照您的建议进行操作。但是,数据库和配置文件不在依赖于项目根目录的位置(我们在“由根管理”位置检查软件,并将我们可以编辑的内容放在其他文件夹中)。
标签: python development-environment production-environment