Python / Git /模块结构最佳实践

用户3056904

我们有很多共享通用实用程序“项目”的小项目

示例
实用项目数学包含函数add
项目A和项目B都需要math.add
项目A与项目B没有关系。

因此,拥有3个git存储库(project_A,project_B和math)并以本地方式克隆它们是一个好主意吗?

/SOMWHERE/workspace/project_A
/SOMWHERE/workspace/math

并在/SOMWHERE/workspace/project_A/__init__.py中有类似

import sys
sys.path.append('../math')
import math

math.add()

我已经阅读了“构建项目”,但是无法处理SCM和共享模块。

所以总结一下我的问题:是

sys.path.append('../math')    
import math

好的做法还是有一种更“ pythonic”的方式来做到这一点?

蒂博J

子模块是共享模块的次佳方式,就像您在评论中所说的那样。更好的方法是使用您选择的语言(即Python)提供的工具。

首先,创建virtualenvs来隔离每个项目python环境。使用pip安装软件包并将依赖项存储在requirements.txt文件中。

然后,您可以使用distutils为每个utils库创建一个特定的程序包,在Pypi上共享它

如果您不想野蛮地发布软件包,也可以托管自己的Pypi服务器

使用此设置,您将能够使用不同版本的库并对其进行处理,而不会破坏与旧代码库的兼容性。您还将避免使用难以与git一起使用的子模块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章