2012-01-26 14 views
2

前言 官方python软件包python-openid(通过pypi.org分发)不适用于Google Apps。有人为此写了一个修正,并将the patched source上传到github。现在我想创建一个应该链接到这个分叉包的包。如何在distutils中链接到分叉包,而不会破坏点冻结?

现在安装这个软件包时,一切都很好。分叉的软件包已安装,一切都很好。但是,在执行pip freeze时,没有提及包的来源。由于应该使用分叉包,包括正式的包间隔部署。我如何链接到我自己的包中的分叉包,并在pip freeze中列出分叉包?

更新

好了,所以我创建标签2.2.5-bouke0,创造了一个分布并将其上传到github。在引用包我setup.py现在看起来是这样的:

dependency_links=[ 
    'http://github.com/Bouke/python-openid/downloads', 
], 
install_requires=[ 
    'python-openid == 2.2.5-bouke0', 
], 

当编译和安装该软件包一切都很好。引用的软件包从github下载并正确安装。然而,pip freeze不显示在包的来源:

django-federated-login==0.1.3 
python-openid==2.2.5-bouke0 

由于版本2.2.5-bouke0不能PyPI上发现,这样的requirements.txt将失败的部署。我如何指示pip freeze引用从哪里获得包裹的替代来源?

回答

1

在存储库中创建标签2.2.5

-f https://github.com/adieu/python-openid/downloads写入requirements.txt文件。

可以肯定的是,将版本号更改为2.2.5-bouke1之类的内容。详情请阅读semver.org。

+0

啊; '--find-links'指令应该包含在需求文件中,这样pip也会在那个URL中寻找下载。有关[要求文件格式]的更多信息(http://www.pip-installer.org/en/latest/requirements.html#indexes-find-links)。 – bouke

+2

顺便说一句,你可以用'-r'选项来做同样的事情,以获得需求文件的某种继承。例如,通常我创建'requirements/base.txt','requirements/production.txt'和'requirements/development.txt'。最后两行在第一行有'-r base.txt'。 –