我们有很多共享通用实用程序“项目”的小项目
示例:
实用项目数学包含函数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”的方式来做到这一点?
子模块是共享模块的次佳方式,就像您在评论中所说的那样。更好的方法是使用您选择的语言(即Python)提供的工具。
首先,创建virtualenvs来隔离每个项目python环境。使用pip安装软件包并将依赖项存储在requirements.txt
文件中。
然后,您可以使用distutils为每个utils库创建一个特定的程序包,并在Pypi上共享它。
如果您不想野蛮地发布软件包,也可以托管自己的Pypi服务器。
使用此设置,您将能够使用不同版本的库并对其进行处理,而不会破坏与旧代码库的兼容性。您还将避免使用难以与git一起使用的子模块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句