创建Conda软件包并将其安装到虚拟环境中

时间:2017-12-06 20:20:41

标签: python anaconda virtualenv

我正在打包一套可以安装在不同环境中的工具,而且我遇到了许多依赖项问题,这是一个问题,因为这个软件包将安装在空中 - 有缺口的环境。

该软件包将通过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.

所以我最初的理解是不正确的,并且包只包含元数据。是否还有其他想法可以创建可以安装在气隙环境中的依赖关系解决方案?

2 个答案:

答案 0 :(得分:1)

我认为您希望查看命令conda build来创建包,这只需要编写包含依赖项的适当meta.yaml文件以及其他一些构建参数。在conda网站上有很好的文档:https://conda.io/docs/user-guide/tasks/build-packages并且有一个例子的回购。

如果你有一个可用的PIP包,你也可以使用conda skeleton自动生成一个conda包装配方。

在本地构建一组软件包之后,您可以使用--use-local conda install选项从本地存储库进行安装,而无需连接互联网(只要包含所有依赖项都在您的本地仓库中。)

答案 1 :(得分:0)

我能够通过pypi网站下载我需要的软件包,在确定了依赖项之后,我手动下载了它们并编写了一个脚本来按所需顺序安装它们。