2

我知道这是完全可能的,而且很多人已经在这样做了,但是我的问题略有不同,我还没有找到解决方案:

让第 3 方 Django App 的结构如下:

  • django 模块
    • 模块
      • 初始化.py
      • 视图.py
      • 模型.py
    • 要求.txt
    • 安装程序.py

我只想将module目录捆绑为子模块,因为这样我只需键入“module.views”即可访问views.py 文件。如果我导入 django-module 目录,我将不得不编写 django-module.module.views 来访问模块文件,这是不可行的。

我的目的是修改模块并偶尔向原始存储库发出拉取请求。是否有我可以遵循的工作流程,或者为此目的的最佳实践是什么?

4

2 回答 2

3

点提示

Pip 支持可编辑包使用 git 检索包,因此您可以创建一个 virtualenv,使用 pip 安装包,并在需要时使用 pip 更新它们。

所以你可以添加:

-e git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject

让您requirements.txt检索该确切的提交。


建议的工作流程

我认为解决您的问题的最佳方法如下:

  • 制作包的私有分支
  • 在分叉存储库的特定开发分支中编辑包
  • 在需求文件中使用来自 fork 开发分支的包。

  • 如果您愿意,请使用 pip 更新您正在使用它的分叉包。

  • 当您准备好发出拉取请求时,拉取源,将您的工作分支重新设置为 origin/master,然后从您的 fork 的主分支发出拉取请求。

这意味着您在三个地方存在代码:

  • 原始仓库(您无权访问的地方)
  • 您的分叉回购(您在分叉上工作的地方)
  • 无论 pip 在哪里安装它(你在哪里使用你的叉子)
于 2012-11-01T19:07:04.660 回答
0

最佳实践是使子模块保持原样。

将第 3 方模块作为子模块添加到应用程序后,下一步是确保将“django-module”目录添加到 python 路径。只要 django-module 在您的 python 路径上,您就可以像往常一样通过键入“module.views”来使用子模块。

于 2012-11-01T19:02:12.730 回答