问题描述
最近我问一个Python库维护者,他是否可以将其库的新标记版本上载到PyPI(https://pypi.org/)。 他表示, PyPI如今不那么重要 [1]。
是真的吗?人们(即您)确实倾向于不使用PyPI吗?如果是这样,您使用什么代替?为什么?
显然,requirements.txt
允许您直接指定git存储库,而直接使用git+https://github.com/<repo>
可以跳过PyPI。尽管我想不出使用PyPI有什么特别的优势。
是否有任何图表可以支持该语句?如果陈述正确,我希望从PyPI下载的数量(每个时间间隔)会随着时间减少。 PyPI将此类数据发布到Google BigQuery。现在已检查,下载次数如下:
202009 1565855136 -- the query was run on 11th of September 2020
202008 5155068175
202007 5409386519
202006 5211181171
202005 5108756961
202004 4812648839
202003 4670947975
202002 4067963794
202001 4155726766
201912 3867376444
201911 3845881964
201910 3922992929
201909 3492788322
201908 3374679723
201907 3338326277
201906 2998812162
201905 3028973146
201904 2436032402
201903 2732697164
使用此查询获得:
SELECT
SUBSTR(_TABLE_SUFFIX,1,6) AS `month`,COUNT(1) AS num_downloads
FROM `the-psf.pypi.downloads*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE(
'%Y%m01',DATE_SUB(CURRENT_DATE(),INTERVAL 18 MONTH))
AND FORMAT_DATE('%Y%m%d',CURRENT_DATE())
GROUP BY `month`
ORDER BY `month` DESC
我知道这个问题可能没有正确的答案,因此可能未遵循StackOverflow提出的所有问题标准。但是我想不出更好的地方来问这个问题。
[1] https://github.com/lavr/python-emails/issues/139
解决方法
PyPI如今不那么重要是真的吗?
一点也不。在PyPI上发布的优势:
-
一个人可以在PyPI上发布轮子,因此
pip install package
下载一个平台特定的轮子。 -
PyPI托管在CDN(内容交付网络)上,因此从PyPI下载速度很快。
3a。 pip
缓存下载的程序包,因此它不会为每个虚拟环境重新下载程序包。它会使用原始URL进行缓存,并且PyPI的URL是稳定的。
3b。 pip
非常糟糕地缓存了克隆的存储库。通常,它会重新克隆整个存储库。