如何创建Azure Artifacts公开源,实现无凭证pip安装开源项目夜间构建包?
我来帮你搞定这个Azure Artifacts公开源的问题,结合实际使用经验给你梳理清楚:
一、创建无需凭证访问的公开PyPI源的正确步骤
你找不到「+ New public feed (preview)」按钮确实是问题的核心——常规创建的feed默认是私有/内部的,哪怕你的项目是公开的,feed依然需要身份验证才能访问。要创建公开feed,得按以下步骤来:
- 首先确认你的Azure DevOps项目是公开项目:公开feed只能在公开项目里创建,私有项目没这个选项。
- 进入项目的「Artifacts」页面,点击右上角的「+ New feed」。
- 在创建弹窗里,找到Visibility(可见性)选项,选择「Public (preview)」:
- 如果看不到这个选项,先去组织设置里开预览功能:进入组织设置 → Feature flags,确保「Public feeds (preview)」开关是打开的。
- 选择「PyPI」作为包类型,填好feed名称、描述,完成创建。
二、解决你当前遇到的访问问题
你现在用常规feed创建的源,本质还是需要身份验证的,所以才会出现:登录浏览器访问提示功能不可用(大概率是权限配置不匹配),隐私窗口直接跳登录。解决办法只有一个:
重新创建一个公开类型的feed,把之前的测试包重新上传过去。
上传流程和你之前用twine的操作完全一样——不管feed是公开还是私有,上传都需要凭证(用Azure DevOps个人访问令牌PAT,权限至少选「Packaging (Read & Write)」),但公开feed的下载环节不需要任何凭证。
验证公开feed是否生效的方法:用隐私窗口打开你的feed simple URL,正常情况下应该能直接看到包的列表,不需要跳转登录。
三、用户无需凭证安装包的命令
公开feed创建好后,其他人直接用下面的pip命令就能安装你的夜间构建包:
pip install your-package-name --index-url https://pkgs.dev.azure.com/orgname/publicprojectname/_packaging/feedname/pypi/simple/
如果用户需要同时从pypi.org和你的公开源拉取包,可以用--extra-index-url:
pip install your-package-name --extra-index-url https://pkgs.dev.azure.com/orgname/publicprojectname/_packaging/feedname/pypi/simple/
额外注意事项
- 公开feed对Azure DevOps免费层也开放,不需要升级付费计划。
- 公开feed里的所有包都会被公开可见,所以不要上传敏感内容。
- 如果还是找不到公开feed的创建选项,检查下你的组织所在区域是否支持这个预览功能,或者联系Azure DevOps支持确认。
内容的提问来源于stack exchange,提问作者ogrisel
相关产品推荐
相关产品推荐

