如何在没有符号链接的情况下,使用git和buidout构建具有共享子应用程序的python项目
我有多个项目与其他项目共享子应用程序。 在项目目录中工作时,我希望能够对应用程序进行更改、更新,并将这些更新拉入第二个项目 要求:如何在没有符号链接的情况下,使用git和buidout构建具有共享子应用程序的python项目,python,git,git-submodules,buildout,git-subtree,Python,Git,Git Submodules,Buildout,Git Subtree,我有多个项目与其他项目共享子应用程序。 在项目目录中工作时,我希望能够对应用程序进行更改、更新,并将这些更新拉入第二个项目 要求: 没有使用符号链接(我的IDE的调试器不能很好地使用它们) 没有编译/重新运行脚本。我想对应用程序进行更改,而无需重新运行脚本/构建 应用程序必须位于项目文件夹中 结构如下: app_one (git repo) |-- app_one (actual app uses by projects) | +-- models.py |-- README
- 没有使用符号链接(我的IDE的调试器不能很好地使用它们)
- 没有编译/重新运行脚本。我想对应用程序进行更改,而无需重新运行脚本/构建李>
- 应用程序必须位于项目文件夹中
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子模块;缺点是无法链接到回购协议的子文件夹。我最近读到关于子树的文章,这会更好吗
理想情况下,我希望使用构建,但我还没有找到一种不使用符号链接的好方法来实现这一点。如果有办法,请告诉我
如有任何建议,将不胜感激。。签出并激活mr.developer源代码后,它将成为构建中的setuptools/,因此签出将由构建中的任何脚本(如zc.recipe.egg生成的python解释器)使用。mr.developer是否允许您直接使用源代码?还是有编译步骤?如果可能的话,我想直接使用
应用程序
,而不必在每次更改后重新编译。感谢您的回复和链接,我仍在努力准确地理解他们在说什么。通过“编译步骤”重新运行构建。每次更改后是否需要重新运行buildout?如果相关,这适用于应用程序引擎项目,因此源代码(例如,app\u one
)必须位于project\u one/apps
目录中。仅当您更改激活/处于开发模式的代码时,才需要重新运行buildout。注意,只要您对其进行代码更改的所有鸡蛋都已激活,就不需要重新运行buildout。这正是开发商先生的用意。请记住,某些setup.py更改(例如添加新的依赖项)需要重新运行buildout。@Kyle:请注意,mr.developer有一个update
命令,该命令将更新其控制下的所有源代码管理目录bin/development up
与所有mr.developer管理的依赖项中的git pull、svn up
等相同。