我正在打包一套可以安装在不同环境中的工具,我遇到了许多依赖关系的问题,因为这个包将安装在空隙环境中。
包将通过Anaconda安装,我已经提供了安装脚本。为了创建包,我运行了以下命令:
conda metapackage toolkit_bundle 0.0.1 --dependencies r-essentials tensorflow gensim spacy r-ggplot2 r-plotly r-dplyr r-rjson r-tm r-reshape2 r-shiny r-sparklyr r-slam r-nlp r-cluster r-ggvis r-plyr r-tidyr r-zoo r-magrittr r-xtable r-htmlwidgets r-formattable r-highcharter --summary "Toolkit Bundle"这产生了一个tar.bzip2文件,我持有该文件并试图通过conda命令进行安装。
conda install toolkit_bundle.tar.bz2该命令似乎运行成功,但我没有成功地导入Python中的模块。我还尝试创建虚拟conda环境并导入包。
conda create -n myenv toolkit_bundle-0.0.1.tar.bz2没有错误,但也没有一个模块能够被导入。
我是在这个过程中错过了一步,还是我的思维过程有缺陷?
更新:,看起来我的想法有很大的缺陷。快速浏览conda metapackage命令文档显示如下:
Tool for building conda metapackages. A metapackage is a package with no files, only metadata. They are typically used to collect several packages together into a single package via dependencies.因此,我最初的理解是不正确的,而且包只包含元数据。是否还有其他想法可以创建解决依赖关系的包,这些包可以安装在空隙环境中?
发布于 2017-12-08 20:01:46
我认为您需要查看命令conda build来生成包,它只需要编写一个包含依赖项的适当的meta.yaml文件,以及一些其他构建参数。在conda网站上有很好的文档:https://conda.io/docs/user-guide/tasks/build-packages,还有一个例子。
如果您有一个工作的PIP包,您也可以使用conda skeleton自动生成conda包配方。
一旦在本地构建了一组包,就可以使用--use-local选项conda install从本地回购安装,而不需要internet连接(只要所有依赖项的包都在本地回购中)。
发布于 2017-12-08 19:53:54
我能够通过pypi网站下载我需要的软件包,在确定了依赖关系之后,我手动下载了它们,并编写了一个脚本来按所需的顺序安装它们。
https://stackoverflow.com/questions/47682834
复制相似问题