Python 在虚拟环境中创建和安装Conda软件包

Python 在虚拟环境中创建和安装Conda软件包,python,anaconda,virtualenv,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

我正在打包一套可以安装在不同环境中的工具,我遇到了许多依赖性问题,这是一个问题,因为这个包将安装在气隙环境中

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

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

我可以通过pypi网站下载我需要的包,确定依赖项后,我手动下载了它们,并编写了一个脚本以按要求的顺序安装它们。

我想您应该看看用于制作软件包的命令
conda build
,它只需要编写一个包含依赖项的适当的
meta.yaml
文件,以及一些其他构建参数。康达网站上有这样做的好文档:并且有一个回购的例子

如果您有一个工作的PIP包,您还可以使用
conda skeleton
自动生成conda包配方


一旦在本地构建了一组软件包,就可以使用
--use local
选项从本地repo安装
conda install
,而无需internet连接(只要所有依赖项的软件包都在本地repo中).

您能否将可能需要的所有软件包保存到本地文件夹中,并在
--channel
选项中指定为
conda create
?您可能还需要使用
--override channels
来阻止它尝试访问远程存储库。您是对的,我可以创建一个conda频道,只需将包放在那里。我希望找到一个解决方案,其中下载包的依赖关系树已经得到处理。