pip默认不安装beta等预发布版本,需显式添加--pre参数才能匹配a/b/rc标识的版本;该参数仅放宽筛选条件,优先仍选稳定版,且仅对当前命令生效。

安装带 --pre 标志的 beta 包
pip 默认只安装稳定版(即不带 alpha/beta/rc 后缀)的包。要装 beta 版,必须显式启用预发布版本支持,否则 pip install yutto 这类命令会直接跳过 yutto 的 2.0.0b1 版本,哪怕它已在 PyPI 上发布。
正确做法是加 --pre 参数:
pip install --pre yutto
这个参数告诉 pip:允许匹配带 a、b、rc 等预发布标识的版本号。它不会强制装 beta,只是放宽版本筛选条件——如果同时存在 stable 和 beta 版,pip 仍优先选 stable;只有当 stable 不可用时,才考虑 pre 版本。
- 仅对当前命令生效,不影响其他安装行为
- 不能和
--upgrade混用时隐式触发 beta 升级(例如pip install --upgrade --pre yutto才可能升到 beta;单纯--upgrade不会) - 若想锁定某个具体 beta 版,仍需写全版本号:
pip install yutto==2.0.0b1
从 test.pypi.org 安装未上正式 PyPI 的 beta 包
有些 beta 包压根没推送到 https://pypi.org,而是先发到测试源 https://test.pypi.org。这时 --pre 无效,因为 pip 默认只查正式源。
必须指定额外索引 URL:
pip install -i https://test.pypi.org/simple/ --trusted-host test.pypi.org cyphal
-i 指定镜像源,--trusted-host 是为绕过 HTTPS 证书校验(test.pypi.org 的证书不被 pip 默认信任)。
从QuickView趋势笔记生成韩语AI播客包,含双人主持脚本(Callie×Nick)、Gemini多说话人TTS音频、字幕时间轴与渲染修正、缩略图+MP4包装及YouTube标题/描述输出。支持完整版(15~20分钟)和压缩版(5~7分钟)。
- 该命令不会自动拉取依赖项,除非包元数据里声明了且依赖也存在于 test.pypi.org
- 如果依赖只在正式 PyPI,需手动补装,或改用
--find-links+--prefer-binary组合处理混合源场景 - 执行前建议先确认目标包确实在 test.pypi 可查:
curl -s "https://test.pypi.org/pypi/cyphal/json" | jq '.info.version'
用 pip install -e . 装本地开发中的 beta 包
如果你自己就是包作者,正在本地迭代一个带 beta 标签的版本(比如 setup.py 里写 version="0.5.0b2"),不需要上传也能测试。
只要项目根目录有 setup.py 或 pyproject.toml,运行:
pip install -e .
就能以可编辑模式装入当前代码——改动源码后无需重装,import 即生效。版本号会如实反映在 pip show <pkgname> 输出里。
- 若用
pyproject.toml,确保[project]段落含version字段,且构建后端兼容(如setuptools≥64) - 遇到
DEPRECATION: Legacy editable install警告,说明 pip 正在弃用旧式setup.py develop,此时应加--use-pep517或迁移到pyproject.toml - 虚拟环境里执行更安全,避免污染全局 site-packages
为什么 pip install 找不到 beta 版本?
最常见原因是没意识到 pip 的默认行为:它把 1.2.0b1 视为“不稳定”,除非你主动说“我要 pre”。这不是 bug,是设计选择——防止 CI/生产环境意外拉入非稳定依赖。
另一个易忽略点是源配置冲突:比如你设置了国内镜像(如清华源)但没同步 test.pypi.org,或者 pip.conf 里写了 index-url 却没配 extra-index-urls,导致 test 源完全被忽略。
调试时优先用 pip install --verbose --pre yourpkg,看日志里 pip 实际请求了哪些 URL、收到了什么响应体——很多“找不到”本质是网络策略或源配置问题,而非包本身不可见。

















