如何解决读取配置文件以填充 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 举报,一经查实,本站将立刻删除。