【发布时间】:2012-02-11 02:21:22
【问题描述】:
我正在开发一个测试 django 站点的代码,我将其保存在 bitbucket 存储库中,以便能够轻松地将其部署到远程服务器上,并可能与朋友分享开发。我使用 hg 进行版本控制。
该站点依赖于第 3 方应用程序 (django-registration),我需要为我的站点进行自定义,因此我分叉了原始应用程序并为其创建了第二个存储库(想法是这样我可以跟上对原始版本进行更新,如果我只是将代码粘贴到我的主站点中,并添加到我自己的自定义代码中,这是不可能的)(您可以在 question 上查看更多详细信息)
我的问题是,如何在 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?
这个question 信息量很大,但似乎建议我应该依赖版本“dev”或第 3 方包,这是行不通的(我想必须有一个特定的版本标记为 dev )
我也是打包/分发/设置工具的新手,所以不要忍住拼写步骤:)
也许我应该更改我的第 3 方应用程序分支上的 setup.py 文件,并确保它提及版本号。一般来说,我很想知道什么是源代码分发,而不是简单地将我的代码放在公共存储库上,在我的情况下什么是二进制分发(一个鸡蛋文件?),以及这是否更实用我在远程部署时/让我的朋友在他的电脑上部署。并且还想知道如何在我的存储库上标记一个版本以便 setup.py 引用它,它只是一个版本控制标记(在我的情况下是 hg)吗?随意评论您认为对入门打包程序很重要的任何细节:)
谢谢!
【问题讨论】:
标签: python packaging setuptools pip distribute