微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

读取配置文件以填充 conanfile.py 中的包名称

如何解决读取配置文件以填充 conanfile.py 中的包名称

我的存储库根目录中有一个 conanfile.py。旁边是一个配置文件。为了不重复我自己,我想在我的 conanfile.py 中读取这个配置文件并填充 ConanFile 对象的一些属性包括包的 name

class MyConan(ConanFile):
    name = # ... load from configuration file

conanfile.py 是从多个位置执行的,我还没有找到一致的方法来找出我的配置文件的位置。在 repo 中执行时,我可以使用 __file__。然而,在柯南缓存中,我不知道如何将我的配置文件放入 export 文件夹或如何在类的初始化期间尽早检索导出的源目录。甚至可以在conanfile.py中实现元数据的加载吗?

解决方法

从文件 data.json 中删除只读标志后,解决方案实际上非常简单和直接(否则导出将失败并显示“权限被拒绝”,至少在 Windows 上):

import json
import os

from conans import ConanFile,load


class MyConan(ConanFile):
    exports = "data.json"

    def init(self):
        data = json.loads(load(os.path.join(self.recipe_folder,"data.json")))
        self.name = data["name"]

此处记录了此解决方案:https://docs.conan.io/en/latest/reference/conanfile/methods.html#init

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。