我有几个相互依赖的 python 项目。我为每个项目都有不同的发行版本,不同的项目可能依赖于特定项目的不同发行版本。我想在内部服务器上创建自己的 conda 存储库,在其中我可以将这些项目的版本作为 conda 包推送,其他项目可以从那里安装所需的版本。这可能吗?如果是这样怎么办?
您可以使用conda 自定义频道 https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/create-custom-channels.html作为您的私人回购。基本步骤是使用“conda build”创建 conda 包,然后将该包复制到自定义通道(目录)中,然后在该目录上运行 conda index。然后,您可以使用“conda install -c”从此通道安装软件包。
更详细地举一个例子,我们假设 linux-64:
- 创建频道:
mkdir -p /tmp/my-conda-channel/linux-64
-
现在假设您有一些名为“abc”的项目,其中包含 meta.yaml 和 build.sh 以及某个版本 X。现在您构建它:
conda build abc
-
这将在您的 conda-bld 目录中构建一个 tar.bz2 文件。例如:〜/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2。将该文件复制到您的频道:
cp ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2 /tmp/my-conda-channel/linux-64/
-
现在索引它:
conda index /tmp/my-conda-channel/linux-64/
您现在已将该包上传到您的自定义频道。您可以通过执行以下操作将其安装在任何 conda 环境中:
conda install -c file://tmp/my-conda-channel/ abc=X
回想一下,X 是版本,因此,一旦您在频道中放置了更多版本,您就可以安装特定版本。
如果您有一个项目依赖于“abc”的 X 版本,那么我们只需将其添加到该项目的 meta.yaml 中即可。例子:
package:
name: some-other-project
version: 0.1
requirements:
build:
- abc X
...
创建此频道后,将其添加到您的频道可能是个好主意.condarc http://conda.pydata.org/docs/config.html?highlight=condarc#the-conda-configuration-file-condarc文件,以便自动搜索。例如:
channels:
- file://tmp/my-conda-channel/
- defaults
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)