如何使用git和buildout在不使用符号链接的情况下构建共享子应用的Python项目结构
我有多个项目,它们之间共享一些应用。在我处理某个项目的文件夹时,我希望能够修改这些应用,更新它们,然后把这些更新拉到另一个项目里。
需求:
- 不使用符号链接(因为我的开发工具的调试器和它们不太兼容)
- 不想重新编译或重新运行脚本。我希望能直接修改应用,而不需要重新运行脚本或重新构建。
- 这些应用必须放在项目文件夹内。
这是我的文件结构:
app_one (git repo)
|-- app_one (actual app uses by projects)
| +-- models.py
|-- README.md
+-- setup.py
project_one (git repo)
|-- project_one
| |-- apps
| | |-- app_one
| | | +-- models.py
| | | -- app_two
|-- setup.cfg
+-- setup.py
project_two (git repo)
|-- project_two
| |-- apps
| | |-- app_one (same app as project_one)
| | | +-- models.py
| | | -- app_two
|-- setup.cfg
+-- setup.py
目前我在用git子模块来处理这个问题;但缺点是无法链接到仓库的子文件夹。我最近听说了子树(subtree),这个方法会更好吗?
理想情况下,我想使用buildout,但我还没找到不使用符号链接的好办法。如果有办法做到这一点,请告诉我。
任何建议都非常感谢。
1 个回答
3
mr.developer 是一个工具。当你把 mr.developer 的源代码下载并且激活后,它就会变成一个 setuptools/distribute 开发包,这个包会在你的构建环境中使用。因此,任何在这个构建环境中运行的脚本(比如通过 zc.recipe.egg 生成的 Python 解释器)都会使用这个下载的代码。