You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Libsonnet中从根目录使用相对路径导入文件?

Libsonnet 根目录相对导入的解决方案

你遇到的问题是因为Libsonnet里的./开头路径是相对于当前文件所在目录的,并非项目根目录,所以直接写./appl/...会在当前文件的同级目录查找appl文件夹,自然找不到目标文件。

要实现基于项目根目录的导入,有两种实用方法:

  • 运行时指定搜索路径
    使用jsonnet命令的-J(或全称--jpath)参数,把项目根目录加入模块搜索路径。比如你的项目根目录是/opt/my-project,运行时执行:

    jsonnet -J /opt/my-project your-target-file.libsonnet
    

    之后在Libsonnet文件里,直接用根目录下的路径导入即可,无需加开头的.:

    import 'appl/example/test/abc.libsonnet'
    
  • 设置环境变量永久生效
    如果不想每次运行都手动加参数,可以设置JSONNET_PATH环境变量,把项目根目录添加进去:

    • Linux/macOS:在终端执行export JSONNET_PATH=/opt/my-project(若要永久生效,把这句话写入~/.bashrc或~/.zshrc)
    • Windows:在系统环境变量中添加JSONNET_PATH,值设为你的项目根目录路径
      之后直接运行jsonnet your-target-file.libsonnet,就能用根目录路径导入文件了。

注意:导入路径不要加开头的./,否则Libsonnet仍会从当前文件目录开始查找,而非--jpath指定的根目录。

内容的提问来源于stack exchange,提问作者Charlie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:32:06