【问题标题】:conda build source from local archive fileconda 从本地存档文件构建源
【发布时间】:2018-10-25 10:32:58
【问题描述】:

conda build 支持多种方法来导入要在构建中使用的源,如here 所述。有没有办法从本地存档文件(.zip、.tar.gz 等)导入源代码?我尝试使用用于指向本地源的 path: 选项指定存档文件的位置;但是,存档文件会被移动到构建工作目录中,而无需解压缩。我显然可以明确地解压档案;但是,这需要我在构建文件中明确指定文件名,这出于多种原因是不可取的。有没有办法从本地存档文件导入源代码并自动解压到工作目录,就像通过 url 和 fn 规范导入的文件一样?

【问题讨论】:

    标签: anaconda conda conda-build


    【解决方案1】:

    您可以尝试在url 字段中使用file:// 协议:

    source:
       url: file:///home/src/mypkgsrc.tar.bz2
    

    在 Windows 上,可以尝试:

    source:
       url: file://C:\path\to\mypkgsrc.tar.bz2
    

    【讨论】:

    • 此方法将尝试解析从构建目录到文件的相对路径,而不是绝对路径。鉴于我的文件路径无法解析,即使找到文件,我也无法确认源是否会被解压。
    • 不,它会解析绝对路径。它是file://,然后是绝对路径。请在否决答案之前尝试一下。
    • 我确实尝试过,它解决了相对路径,而不是绝对路径,因此我投反对票
    • /home/src/mypkgsrc.tar.bz2 是绝对路径吗?另外,也可以指定多个 url。
    • 我只是在 linux 上测试了这个,而不是我之前在 windows 上的尝试,发现它成功了。如果您编辑答案,我很乐意投票,因为我的投票目前已锁定。
    【解决方案2】:

    扩展上一个答案,file:// URL 必须是绝对的,但您可以使用 jinja2 变量来解决这个问题。例如,如果您可以找到与配方目录相关的文件,您可以编写如下内容:

    source:
        url: file://{{RECIPE_DIR}}/../src/mypkgsrc.tar.bz2
    

    【讨论】:

      猜你喜欢
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      相关资源
      最近更新 更多