在python中自动化datadir和前缀

时间:2011-12-24 17:32:26

标签: python autotools automake

说我有my_application.py.in来生成my_application.py的automake。如何在扩展$ {prefix}的情况下将datadir添加到我的应用程序中?现在我能想到的最好的是在我的python应用程序中使用replace(),但是,我假设有一种更合适的方式。

if __name__ == "__main__":
    app = Application()
    app.VERSION = '@VERSION@'
    app.PACKAGE = '@PACKAGE@'
    # How should I get the DATA_DIR in this next line?
    app.DATA_DIR = "@datarootdir@".replace("${prefix}", "@prefix@")
    app.run()

2 个答案:

答案 0 :(得分:3)

您需要在make时进行替换。这在C中更容易,您可以在其中设置#define,但对于Python,我会尝试这样的事情:

foo.py: foo.py.in
        [ -f $@ ] && rm -f $@
        $(SED) -e "s:[@]datarootdir@:$(datarootdir):" $< > $@
        chmod a-w $@

(将AC_PROG_SED添加到configure.ac

答案 1 :(得分:0)

一种常见的技术是使用configure.ac中的adl_RECURSIVE_EVAL(来自autoconf存档)来生成完全展开的路径。

相关问题