托管私人 conda 频道

托管私人 conda 频道

我最近加入了一家初创公司,负责为我们的内部 Python 库设置包管理。我们从事生物技术和机器学习领域,我们使用的很多包都是在 conda 频道上建立的索引。

我们目前的设置是从 GitHub 安装我们的本地存储库,这些存储库使用 setup.py 构建。最初,我认为我们应该只使用 poetry 来进行所有包管理,对于我们自己的任何私有库,都应设置 aws codebuild/artifact 来托管我们的库。我仍然认为这似乎是在 python 中进行包管理的最佳选择。

另一方面,我们需要的软件包太多了,这些软件包在 conda 生态系统中可用,但在 pypi 上却不可用。我们现在注意到,当尝试同时使用 pip 和 conda 时,两者之间存在多个依赖项冲突。因此,我们不妨完全倾向于使用 conda 生态系统。

为了做到这一点,我认为一个好主意是使用私有的 conda 频道来存放我们自己的任何库,并使用 conda-forge 来存放我们可能需要的来自 pip 的任何存储库。如果出于某种原因我们在 conda-forge 上找不到包,似乎有一个非常简单的过程可以遵循,可以从 pypi 那里获取它。

我的问题是:以前有人托管过自己的 conda 频道吗?

我还没有找到任何关于标准方法的报告/指南,这让我感到非常惊讶,因为我不可能是唯一遇到这个问题的人。据我所知,artifactory 是可用于实现这一点的最适合企业的解决方案,但我很好奇是否有我以前没有见过的东西,以及其他人是否也遇到了这个问题。

我已经看到并尝试过以下选项:

使用 AWS 和 Azure 解决方案的唯一方法是从 s3 本地挂载文件以便正确使用通道,这似乎不是使用 conda 通道的正确方法,更不用说它涉及下载存储桶中的所有/大多数文件以便正确索引通道。

anaconda 和 quertz 解决方案看起来像是从安装 s3 存储桶迈出的一步,但它们不允许联合登录,至少不是本机的,这导致使用某些artifactory或某些等效工具。

以下是我们当前所做的 environment.yml 文件的样子。

name: package
channels:
  - conda-forge
  - bioconda
  - defaults
dependencies:
  - awscli=1.27.134
  - pip
  - python=3.10.11
  - pip:
    - GitHub.com/internal_repo/version/files.tar.gz
    - other pip dependencies

这是以下帖子的转发:https://www.reddit.com/r/Python/comments/15bw2gn/python_packaging_with_conda/ https://www.reddit.com/r/learnpython/comments/15bw310/python_packaging_with_conda/

我检查过的其他资源:

相关内容