尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
PyPI 私有源怎么用:从安装到 twine 上传和 pip 安装
twine upload报 401或pip install提示No matching distribution found——多半不是包坏了而是私服还没接对服务没起来、上传地址和安装索引搞混、username没写成__token__或 index-url 漏了/simple/。下面用 AngusRepo社区版私有化部署按操作顺序走完一遍安装 → 建仓与令牌 → .pypirc / pip.conf → 最小包上传与安装 → 验证。命令里的主机写成repo.example.com换成你的域名即可。1. 安装得到可打开的控制台前提Docker Engine Compose v2约 2 核 / 4 GB放行80gm.example.com与repo.example.com已解析到本机试用可写/etc/hosts。完整步骤见 第一次跑通。curl--fail--location--progress-bar-oAngusRepo-Community-1.0.0.zip\https://repo.anguskit.com/raw/raw-public/AngusKit/repo/AngusRepo-Community-1.0.0.zipunzipAngusRepo-Community-1.0.0.zipcdAngusRepo-1.0.0 ./install.sh向导与快速开始对齐ComposeAccess 选2捆绑反代TLS 选4HTTP:80Database 选 Compose 内 MySQLPublic DNS name 填后缀如example.com。出现Install finished.后./bin/angusctl.sh doctor# 看到 doctor: OK浏览器打开http://gm.example.com/登录再打开http://repo.example.com/。Windows 用curl.exe.\install.bat。需要 HTTPS 时见 安装与部署。下文默认HTTP 私有化。HTTP 下 pip 通常要加trusted-host上了可信证书后改成https://并可去掉该项。控制台能打开后先建仓库和令牌再改客户端配置。2. 建仓、令牌与拓扑twine upload只能进HOSTEDPROXY、GROUP 只读。在http://repo.example.com/创建仓库名示例类型干什么pypi-hostedHOSTEDtwine 上传目标建议禁止覆盖pypi-proxyPROXY代理 PyPI远程 URLhttps://pypi.orgpypi-allGROUPpip 统一安装入口成员顺序 hosted → proxy两套路径不要混上传/pypi/仓库名/HOSTED 根路径安装/pypi/仓库名/simple/必须带/simple/PEP 503同一控制台继续准备创建访问令牌只显示一次立刻保存CI 对pypi-hosted有 Write开发者对pypi-all有 ReadGROUP 成员顺序确认为 hosted → pypi-proxyexportREPO_TOKENyour_access_tokenexportREPO_HOSTrepo.example.com具体路径以控制台「接入配置」为准字段说明见 PyPI 格式。3. 安装pip.conf / index-url默认口径安装走 GROUPpypi-all/simple/上传走 HOSTED。# ~/.config/pip/pip.conf 或项目旁 pip.conf [global] index-url http://repo.example.com/pypi/pypi-all/simple/ trusted-host repo.example.com单次命令pipinstallsome-pkg\--index-urlhttp://$REPO_HOST/pypi/pypi-all/simple/\--trusted-host$REPO_HOST只想装内部包、公共包仍走官方源时pipinstallyour-package\--index-url https://pypi.org/simple\--extra-index-urlhttp://$REPO_HOST/pypi/pypi-hosted/simple/\--trusted-host$REPO_HOSTindex-url/extra-index-url必须以/simple/结尾。4. 发布.pypirc 与 twineusername固定写__token__不是登录名password才是访问令牌。# ~/.pypirc勿提交含真实令牌的文件 [distutils] index-servers angusrepo [angusrepo] repository http://repo.example.com/pypi/pypi-hosted/ username __token__ password your_access_tokenpython3-mpipinstallbuild twine python3-mbuild twine upload\--repository-urlhttp://$REPO_HOST/pypi/pypi-hosted/\--username__token__\--password$REPO_TOKEN\dist/*或twine upload -r angusrepo dist/*。同版本重复上传通常会失败——升版本不要覆盖。5. 验证闭环最小可上传包mkdir-p/tmp/angus-pypi-democd/tmp/angus-pypi-democatpyproject.tomlEOF [build-system] requires [setuptools61] build-backend setuptools.build_meta [project] name angus-demo-utils version 1.0.0 description AngusRepo PyPI smoke package requires-python 3.9 EOFmkdir-pangus_demo_utilsechoOK Trueangus_demo_utils/__init__.py python3-mpipinstall-qbuild twine python3-mbuild twine upload\--repository-urlhttp://$REPO_HOST/pypi/pypi-hosted/\--username__token__\--password$REPO_TOKEN\dist/*干净环境安装python3-mvenv /tmp/angus-pypi-venvsource/tmp/angus-pypi-venv/bin/activate pipinstallangus-demo-utils1.0.0\--index-urlhttp://$REPO_HOST/pypi/pypi-all/simple/\--trusted-host$REPO_HOSTpython-cimport angus_demo_utils; print(angus_demo_utils.OK)应打印True。控制台制品列表应能看到1.0.0。CI 最小片段-run:|python -m pip install build twine python -m build twine upload \ --repository-url http://$REPO_HOST/pypi/pypi-hosted/ \ --username __token__ \ --password $REPO_TOKEN \ dist/*Poetrypoetry source add指 GROUP 的/simple/认证用户名同样__token__。流水线编排另见 Jenkins 构建测试发布。6. 日常维护清理旧版本— HOSTED 保留最近 N 版先 Dry Run见 清理策略。PROXY 冷缓存— 首次拉公共包会慢可预热。入库检查— 轻量门禁在 Repo深度扫描另接见 入库门禁与 SBOM。报错速查症状常见原因怎么处理twine 401username 不是__token__或令牌错误改用户名与令牌查 HOSTED WriteNo matching distribution found安装 URL 缺/simple/或指错仓用…/pypi-all/simple/能上传不能安装装到了官方源没走含 HOSTED 的 GROUP改 index-urlSSL / 证书错误HTTP未设trusted-hostpip.conf 加上主机名409 / 文件已存在同版本重复上传升版本号FAQ能不能 twine 到 GROUP不能。上传只能 HOSTEDpip 安装用 GROUP 的/simple/。username 能写登录名吗按 PyPI token 约定应写__token__。写登录名在多数私服会直接 401。HTTP 环境必须配 trusted-host 吗是。无证书时 pip 默认校验 TLSHTTP 私服不配往往会握手失败。小结安装并打开控制台 → HOSTED PROXY GROUP → 发令牌。上传走 HOSTED 根路径安装走 GROUP/simple/。__token__ 令牌进密码位用最小包跑通 build → twine → pip。参考文章第一次跑通安装与部署PyPI 格式清理策略Jenkins 构建测试发布入库门禁与 SBOM
RELATED

相关推荐

数学专业小白必看:8个月转行AI大模型,收藏这份实战路线图

数学专业小白必看:8个月转行AI大模型,收藏这份实战路线图

本文针对数学专业学生,指出传统数学知识在AI行业应用有限,建议转行AI大模型领域。文章提供了四步转行路径:重建CS基础(数据结构、算法、Python等);掌握大模型技术栈(Transformer架构、部署工具、…

📅 2026/10/14 21:21:00
服装AI质检数据存储架构:近期数据与历史数据为何要分开存?

服装AI质检数据存储架构:近期数据与历史数据为何要分开存?

在服装AI质检场景中,每天都会产生海量的检测数据——包括图像、检测结果、缺陷标注、设备运行日志等。这些数据既需要支撑实时业务查询(如当日质检报表、缺陷趋势监控),又需要长期留存以满足追溯、审计和模型迭代需求。 一个常见的…

📅 2026/10/14 21:20:59
2026-10-13:创建一个恰好有 K 条路径的网格图Ⅰ。用go语言,有 m、n、k 三个整数。请生成一个 m 行 n 列的字符矩阵,每个位置只能填“.”或“#”。其中“.”表示可以经过的格子,“#

2026-10-13:创建一个恰好有 K 条路径的网格图Ⅰ。用go语言,有 m、n、k 三个整数。请生成一个 m 行 n 列的字符矩阵,每个位置只能填“.”或“#”。其中“.”表示可以经过的格子,“#

2026-10-13:创建一个恰好有 K 条路径的网格图Ⅰ。用go语言,有 m、n、k 三个整数。请生成一个 m 行 n 列的字符矩阵,每个位置只能填“.”或“#”。其中“.”表示可以经过的格子,“#”表示不能经过的障碍。所谓有效路线,…

📅 2026/10/14 21:20:59
MORE NEWS

更多资讯

📰

2026年Docker还值得学吗?学习重点已变

说实话,这个问题每隔一两年就会有人问一次。从“学 Docker 还有没有前途”到“Kubernetes 是不是已经把 Docker 干掉了”,再到 2026 年这个节骨眼上,大家反复纠结的其实不是技术本身,而是怕自己投入时间之后学到的东西很快就过期。…

📰

30天倒计时:如何用时间约束为验收环境装上质量门禁

测试员这行干久了,心态再稳的人也会遇到几个逼得你想“动手”的场景。我印象最深的,是某个跨平台客户端项目进入验收阶段后,验收环境挂了三周,脚本跑了几轮,功能点却还有一大半没覆盖到。管理层看到“验收环境在线”就…

📰

无sudo无npm?三步在受限服务器部署Claude命令行工具

1. 限制边界:没有 sudo、没有 npm 不等于没法部署 Claude先给结论:只要你的账号在服务器上有可写的用户目录,并且能执行文件,那么即使没有 sudo,也没有全局 npm,一样能把 Claude 官方命令行工具装好、跑起来…

📰

TP301系列DTU配置与调试:从串口转网络到故障排查的完整指南

简介:TP301系列DTU使用说明是一份面向物联网现场工程师与设备调试人员的官方技术文档,适用于工业自动化、智能农业、环境监测等场景的无线数据采集与传输项目。压缩包内含1个PDF文件,大小仅2.15MB,正文围绕产品接口、配置工具、平…

📰

面向对象程序设计-第一阶段补充-教材6-3:自定义函数实现有序数组的删除

作者 陈春丽单位 中国地质大学(北京)从一个有序数组(由小到大)中删除一个数据。如数组a{1,3,5,7,9},删除3后的a是{1,5,7,9},长度减1(不会释放数组内存)。如果要删除的数据不在数组中…

📰

Adobe Premiere Pro 2025新特性与安装优化指南

1. Adobe Premiere Pro 2025 版本核心特性解析作为视频剪辑行业的标杆软件,Adobe Premiere Pro每年的大版本更新都会带来颠覆性改进。2025版本在引擎底层进行了全面重构,实测项目渲染效率比2024版提升40%以上。最值得关注的是新增的AI智能剪辑助手&#…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬