如何通过SSH使用Poetry将Python包发布至Bitbucket私有仓库
解决Poetry通过SSH发布Python包到Bitbucket私有仓库的问题
问题根源
你配置的仓库地址是Bitbucket的Git克隆地址(git@bitbucket.org:company/repo_name.git),但Poetry的publish命令需要的是PyPI兼容的仓库API地址,而非Git仓库地址,这才导致了No connection adapters were found错误。
正确配置步骤
1. 配置Bitbucket Python包仓库的SSH端点
Bitbucket的私有Python包仓库有专门的SSH访问地址,替换之前的Git克隆地址:
poetry config repositories.bitbucket "ssh://git@bitbucket.org/company/repo_name/pypi"
2. 确认SSH认证正常
确保你的SSH密钥已添加到Bitbucket账户,且本地SSH代理处于运行状态(避免每次操作手动输入密码)。
3. 执行发布命令
现在可以正常发布:
poetry publish --build --repository bitbucket
备选方案(若SSH端点直接访问失效)
如果上述配置不生效,可通过SSH隧道转发HTTPS请求绕开限制:
- 建立SSH隧道:
ssh -L 8080:api.bitbucket.org:443 git@bitbucket.org -N
- 配置Poetry使用本地转发端口:
poetry config repositories.bitbucket "http://localhost:8080/2.0/repositories/company/repo_name/pypi" poetry config http-basic.bitbucket <你的Bitbucket用户名> <你的Bitbucket应用密码>
- 执行发布命令:
poetry publish --build --repository bitbucket
关键注意事项
- 需确保Bitbucket仓库已开启Package Registry功能(在仓库设置中找到对应选项并启用Python支持)。
- 若使用Bitbucket应用密码,需为其分配
write:package权限。
内容的提问来源于stack exchange,提问作者Yusuf Ahmed
相关产品推荐
相关产品推荐

