我们有一个包含 Python 项目的私有仓库,该项目由 setuptools 在 CI/CD 服务器上构建,然后轮子工件作为版本被推回 Github。这个过程效果很好,但是将生成的轮子返回到需要它作为依赖项的其他构建过程中似乎并不容易。
我们最初的过程是使用 git 子模块,但是轮子格式更好地自包含,并且使用项目不必担心相对路径,因为轮子直接安装到站点包中。
在任何消费项目中拉动和安装轮子是最大的问题。将轮子的 url 添加到requirements.txt
gets pip 以尝试拉轮子,但随后失败并显示以下内容:
Could not install requirement <ProjectName>==2.0 from
https://github.com/<CompanyName>/<ProjectName>/releases/download/v2.0.0/<ProjectName>-2.0-py3-none-any.whl (from -r
requirements.txt (line 27)) because of HTTP error 404 Client Error: Not Found for url
如果在私有浏览器窗口中跟随 url,也会返回 404 错误。如果在已经登录到 GitHub 的浏览器上跟随 url,则返回轮子。检查获得轮子的请求显示浏览器发送了一个 cookie,让 GitHub 知道这个轮子属于我,但以编程方式发送 cookie 似乎不是一个好主意。
以下问题都涉及同一主题。第一个问题的公认答案似乎不是很优雅-希望在某个地方有更好的方法!
来自私人 github repo 的 pip install wheel 版本
谢谢
斯图尔特