python - 团队中的 conda 环境和共享 Linux 环境 - 最佳实践?

标签 python conda sdlc mamba

Conda 很棒,但它假设人们完全独立地编码,就像公共(public) python 模块中完全缺乏命名空间层次结构一样。寻找 6 个人在基本相同的 conda 环境中进行开发的最佳实践。让我们假装不会有异常(exception)。没有容器,这会让这变得更容易。

我想问问其他人有什么秘诀吗?任何人都可以推荐其他最佳实践吗?

以下是我们目前正在开展的工作:

  1. 拥有一个“源”environment.yml,然后让所有开发人员从导出的快照 yml 开始工作(除非他们正在开发 conda 环境本身),这样他们就都在完全相同的环境中进行开发。当某人的应用程序投入生产并且您发现它的开发环境时,您不希望出现意外。这只是每种语言的标准最佳实践。

  2. 将共享 conda 环境部署到 QA 和 Prod。 Conda环境占用几GB的空间,这是一个小问题,但安装也需要很多时间。每次应用程序更新都需要安装大量机器。是的,需要关心 conda 环境的版本控制,但同时使用 2 或 3 个版本并不是什么问题。是的,conda/mamba 偶尔会出现错误。围绕它们工作很痛苦

最佳答案

使用 conda 已经有几年了,但最近放弃了它,因为它多次让我的团队陷入僵局。

如果您想保留在 conda 系统中,我给出的第一个建议是至少切换到 mamba,因为 conda 有时可能非常慢。

您没有指定需要管理的环境/语言。

对于我的团队来说,95% 都是 Python,我们改用诗歌,我们发现它速度更快,并且可以更轻松地通过其 TOML 配置来管理一致的环境。我们还使用它来将生产项目依赖项与开发环境分开,后者配备了许多在本地(例如预提交)或远程(例如 github 操作)工作流程中使用的 linter/测试器等。

当然,如果您需要安装 PyPI 上没有的非 Python 内容,则需要 conda 或您平台的包管理器(例如 Mac 的 homebrew、Debian Linux 及其衍生产品的 apt)。

希望这些有用。

关于python - 团队中的 conda 环境和共享 Linux 环境 - 最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75685777/

相关文章:

build-process - 发布流程改进

python - Python 中的 base64 到 json 属性

python - 简单的正则表达式不起作用

Python 没有模块名称 'PhotoScan'

python numpy/scipy 查找多维数组中相对变量的计数或频率

python - conda SSL 错误

azure - 新的 Azure 虚拟机/dev/sda1 上没有剩余空间

python - 如何使用当前 conda 环境的 python 路径作为脚本的 shebang?

android - 需要设计一个android应用的架构设计

testing - 最后一分钟范围变更?当然为什么不呢?