我正在开发一个测试 django 站点的编码,我将其保存在 bitbucket 存储库中,以便能够轻松地将其部署在远程服务器上,并可能与朋友分享开发。我使用 hg 进行版本控制。
该站点依赖于第 3 方应用程序(django-registration),我需要为我的站点进行自定义,因此我分叉了原始应用程序并为其创建了第二个存储库(想法是这样我可以跟上更新原始的,如果我只是将代码粘贴到我的主站点中,加上添加到我自己的自定义代码中,这是不可能的)(您可以查看有关此问题的更多详细信息)
我的问题是,如何在 setup.py 文件中指定要求,以便在安装 django 站点时获得用于 3rd 方应用程序的最新版本的 fork(我使用分发而不是 setuptools,以防产生影响) ?
我试过这个:
install_requires = ['django', 'django-registration'],
dependency_links = ['https://myuser@bitbucket.org/myuser/django-registration#egg=django_registration']
但这让我得到了原始树干上最新的命名版本(所以即使是小费版本)
但是,使用 pip 要求文件效果很好:
hg+https://myuser@bitbucket.org/myuser/django-registration#egg=django-registration
从我的 fork 中获取最新版本。
有没有办法直接从 setup.py 文件中获得相同的行为,而不必先安装站点的代码,然后运行 pip install -r requirements.txt?
这个问题信息量很大,但似乎建议我应该依赖版本“dev”或第 3 方包,这是行不通的(我想必须有一个特定的版本标记为 dev)
此外,我是包装/分发/设置工具方面的新手,所以不要阻止拼写步骤:)
也许我应该更改我的 3rd 方应用程序分支上的 setup.py 文件,并确保它提到了版本号。一般来说,我很想知道什么是源代码分发,而不是简单地将我的代码放在公共存储库上,在我的情况下什么是二进制分发(一个鸡蛋文件?),以及这是否更实用我在远程部署时/让我的朋友在他的电脑上部署。并且还想知道如何在我的存储库上标记一个版本以供 setup.py 引用它,它只是一个版本控制标记(在我的情况下是 hg)吗?随意评论您认为对入门打包程序很重要的任何细节:)
谢谢!