我知道这是完全可能的,而且很多人已经在这样做,但是我的问题略有不同,我还不能找出解决方案:
让第三方Django应用程序的结构如下:
- django模块
- 模块
- init .py
- views.py
- models.py
- 需求.txt
- setup.py
- 模块
我只想将module
目录捆绑为子模块,因为我可以通过键入"模块。视图"来访问views.py文件。如果导入django-module目录,则必须编写django-module.module.views访问模块文件,这是不可行的。
我的目的是修改模块并偶尔向原始存储库提出拉请请求。我可以遵循的工作流程,还是为此目的的最佳实践?
pip提示
pip支持使用git的可编辑软件包和检索包裹,因此您可以创建一个Virtualenv,使用PIP安装软件包,并在需要时使用PIP更新它们。
因此您可以添加:
-e git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject
到您的requirements.txt
检索确切的提交。
建议的工作流
我认为解决您的问题的最佳方法是:
- 制作包裹的私人叉
- 在分叉存储库的特定开发分支中编辑软件包
在您的需求文件中使用叉子开发分支的软件包。
当您感觉到时,请更新使用PIP的分叉软件包。
- 当您准备提出拉动请求,拉动来源,将工作分支重新为Origin/Master,并从叉子的主分支中提出拉请请求。
这意味着您有三个存在代码的地方:
- 原始仓库(您无法访问)
- 您的分叉仓库(您在叉子上工作的地方)
- 无论pip安装在何处(您使用叉子的位置)
最好的做法是将子模型完全保持原样。
您将第三方模块添加到应用程序的子模块中,下一步就是确保将" Django-Module"目录添加到Python路径中。只要Django模块在您的python路径上,您就可以按照您的意愿通过键入" module.Views"来使用子模块。