如何配置setup.py以从GitHub master安装pip?

esp*_*eed 9 python distutils pip github setuptools

而不是将发布推送到PyPi和GitHub,让PyPi使用最新的GitHub主机会更容易.有没有正确的方法来做到这一点?

我知道你可以在install_requires中将依赖关系列为GitHub repos,但有没有办法为主包执行此操作?

例如,当您使用easy_install安装Flask时,它会从多个源读取,包括GitHub,它在安装URL中列出(https://github.com/mitsuhiko/flask/blob/master/setup.py#L78) :

$ sudo easy_install Flask
Searching for Flask
Reading http://pypi.python.org/simple/Flask/
Reading http://github.com/mitsuhiko/flask/
Run Code Online (Sandbox Code Playgroud)

列出setup.py中的URL是什么导致easy_install也从GitHub读取?

如果是这样,如果GitHub版本比PyPi版本更新,它是否总是从GitHub安装?

pip的效果是否相同?

Hug*_*res 9

如果我没记错的话,你可以用它download_url来指向GitHub上最新的tarball.

不要将任何sdist/bdist发送给PyPI,只需注册包并更改setup.py为:

setup(...,
      download_url='https://github.com/USER/PROJECT/tarball/master')
Run Code Online (Sandbox Code Playgroud)

这些页面被读取的原因是setuptools爬行大量页面(从http://pypi.python.org/simple/开始)寻找任何类似于安装需要的下载URL.如果您使用/中的-v选项,则可以查看更多详细信息.easy_installpip

pip install -vvv flask
Run Code Online (Sandbox Code Playgroud)



参考文献: