0

我在一家小型企业工作,最终用户的数量和对一组特定软件包的贡献永远不会超过 5 个(这是有保证的)。在过去的 3 个月里,我们一直在为每个项目使用 anaconda 和本地 git 存储库在共享 Windows 驱动器上进行所有研究和开发。可以想象,生成的源代码变得有点混乱,每个人的代码都指向其他人文件夹中的特定包,并且依赖关系一直在中断。

我们终于获得了一个 github 存储库,并且我们的大部分代码已经成为生产稳定的。我想在 tarball 中分发此代码,并让每个人在共享的 anaconda 环境中使用 disutils 从源代码构建。完整的包将由每个子包组织,并包含 cython 和 python 文件。最终,它看起来像这样

|tools
    |setup.py (created with disutils)
    | __init__.py
    |package A (dir)
        |__init__.py
        |module A1.py
        |module A2.pyx

    ....

    |package B (dir)
        |__init__.py
        |package B1.py
        |package B2.pyx

我将把“工具”包放入 github repo。每次工具包发生重要更改时,我们都会从主分支中提取并重新运行 setup.py 以保持其本地工具包是最新的。此外,我们都将使用共享的 anaconda 环境,因此对外部包的依赖不会破坏工具包的安装。

这是在少数最终用户中分发生产代码的正确方法吗?我来自研究而不是软件开发背景,我真的不知道软件分发是如何工作的。每次我们更新“工具”包时都强迫每个人从源代码重建过大吗?传统上,当我使用 conda/pip 安装时,我可以只说“pip install mypackage --upgrade”之类的内容。我们可以在这里使用某种类似的程序吗?

4

0 回答 0