我有一个使用zc.buildout管理的Pyramid Web应用程序。在其中,我需要读取磁盘上的一个文件,该文件位于buildout目录的子目录中。

问题在于确定文件的路径-我不想硬编码绝对路径,而在生产环境中为应用程序提供服务时,仅提供相对路径是行不通的(据说是因为工作目录不同)。

因此,我正在考虑的有希望的“挂钩”是:


“根”构建目录,我可以在buildout.cfg中将其定位为${buildout:directory}-但是,我不知道如何“导出”该目录,以便Python代码可以对其进行访问
粘贴程序的.ini文件的位置,该文​​件将启动应用程序

最佳答案

如果相对于builder根目录或paster.ini位置的文件路径始终相同(似乎是您的问题),则可以在paster.ini中进行设置:

[app:main]
...
config_file = %(here)s/path/to/file.txt


然后按照Reinout的答案从注册表中访问它:

def your_view(request):
    config_file = request.registry.settings['config_file']

关于python - 如何从Python代码访问$ {buildout:directory}?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14166526/

10-12 05:18