conda 从本地存档文件构建源
Posted
技术标签:
【中文标题】conda 从本地存档文件构建源【英文标题】:conda build source from local archive file 【发布时间】:2018-10-25 10:32:58 【问题描述】:conda build 支持多种方法来导入要在构建中使用的源,如here 所述。有没有办法从本地存档文件(.zip、.tar.gz 等)导入源代码?我尝试使用用于指向本地源的 path: 选项指定存档文件的位置;但是,存档文件会被移动到构建工作目录中,而无需解压缩。我显然可以明确地解压档案;但是,这需要我在构建文件中明确指定文件名,这出于多种原因是不可取的。有没有办法从本地存档文件导入源代码并自动解压到工作目录,就像通过 url 和 fn 规范导入的文件一样?
【问题讨论】:
【参考方案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
【讨论】:
以上是关于conda 从本地存档文件构建源的主要内容,如果未能解决你的问题,请参考以下文章
Tips:outlook(Exchange 模式) 无法存档