install-poetry虚拟环境配置指南:in-project、自定义路径与不建venv三种策略怎么选
install-poetry虚拟环境配置指南in-project、自定义路径与不建venv三种策略怎么选【免费下载链接】install-poetryGithub action for installing and configuring Poetry项目地址: https://gitcode.com/gh_mirrors/in/install-poetryinstall-poetry 是一个专为 CI/CD 设计的 GitHub Action用于自动安装并配置 Python 依赖管理工具 Poetry。它的核心配置能力集中在install-poetry 虚拟环境配置上通过三个简单参数你可以决定虚拟环境建在项目目录内in-project、放到自定义路径或者干脆不建虚拟环境。本文带你用最短的时间搞懂这三种策略的区别选出最适合你工作流的那一个。三种虚拟环境策略速览 在 action.yml 中install-poetry 把虚拟环境相关的输入参数定义得非常清晰一共 3 个开关参数默认值作用virtualenvs-createtrue是否创建虚拟环境virtualenvs-in-projectfalse虚拟环境是否放在项目目录内virtualenvs-path{cache-dir}/virtualenvs自定义虚拟环境存放路径这三者组合后就形成了下文要讲的三种典型策略。安装脚本 main.sh 会在安装完成后依次执行poetry config命令把这三个设置写入全局配置见 main.sh 第 42-44 行你无需再手动干预。策略一in-project 项目内虚拟环境最常用✅把虚拟环境直接建在项目目录下的.venv文件夹中是 CI 场景下最受推荐的做法- uses: snok/install-poetryv1 with: virtualenvs-create: true virtualenvs-in-project: true为什么推荐缓存最简单.venv位置固定一行配置就能缓存整个目录命中缓存后几乎零安装时间跨系统路径一致不管跑在 Ubuntu、macOS 还是 Windows路径都是.venv工作流不用区分操作系统与工具链默契配合README 中的测试、矩阵测试、Codecov 上传等所有示例工作流默认都采用这一策略使用小贴士Windows 上虚拟环境的激活脚本在.venv/scripts/activate而 Unix 上在.venv/bin/activate。install-poetry 贴心地提供了一个系统无关的环境变量$VENV由 main.sh 第 61-68 行自动设置跨系统工作流里直接写source $VENV即可避免写两套激活逻辑。策略二自定义路径虚拟环境 如果你不想让虚拟环境出现在项目里比如仓库会被打包发布或团队规范禁止项目内产物可以把虚拟环境指到任意位置- uses: snok/install-poetryv1 with: virtualenvs-path: ~/my-custom-path不配置时默认路径是{cache-dir}/virtualenvs即virtualenvs-path: {cache-dir}/virtualenvs虚拟环境会按项目分散存放在系统缓存目录中。需要注意的两点路径因操作系统而异{cache-dir}在不同系统上指向不同目录写跨平台工作流时容易踩坑绕过技巧与其去激活位置不确定的虚拟环境不如全程用poetry run pytest、poetry add Django5这类命令让 Poetry 自己管理环境——工作流立刻变得简洁又 OS 无关适合场景对仓库内容有洁癖、多项目共享缓存目录、或需要统一管理所有 Python 环境的团队。策略三不创建虚拟环境 直接告诉 install-poetry 跳过虚拟环境- uses: snok/install-poetryv1 with: virtualenvs-create: false此时依赖会装进系统 Python 环境工作流中所有source .venv/bin/activate的激活步骤都可以删掉直接运行pytest、coverage等命令。代价与对策每次运行都要重新安装全部依赖速度明显慢于前两种策略建议改为缓存pip wheel 缓存目录如~/.cache/pip——虽然省不了安装时间但能省下载时间还顺便减轻 PyPI 的访问压力适合场景CI 上只做依赖解析、生成 lock 文件、轻量检查等不需要完整环境的任务。三种策略怎么选一张清单搞定 你的诉求推荐策略关键配置追求 CI 速度想缓存整个环境in-projectvirtualenvs-in-project: true缓存.venv跨操作系统矩阵测试in-project 或poetry run用$VENV/poetry run保持系统无关不想污染项目目录自定义路径virtualenvs-path: ~/xxxpoetry run只做 lock 文件解析等轻任务不建虚拟环境virtualenvs-create: false 缓存 pip wheel一句话总结默认选 in-project90% 的团队都能用它跑通有洁癖就上自定义路径只想跑轻任务再考虑不建 venv。进阶技巧缓存 Poetry 本体 虚拟环境之外Poetry 安装本身约占 10 秒也值得缓存在调用 install-poetry 前先用 actions/cache 缓存~/.local缓存命中就跳过安装步骤。注意一个细节——缓存命中导致安装步骤被跳过时自定义配置不会重新应用需要额外加一步poetry config来补上配置README 的「Caching the Poetry installation」章节有完整示例。常见问题 FAQ ❓Q1默认行为是什么什么都不写会怎样什么都不写时install-poetry 安装最新版 Poetry创建虚拟环境、放在{cache-dir}/virtualenvs并启用并行安装。完整默认值见 action.yml 各输入项的default字段。Q2想装指定版本怎么办加一个version参数即可例如version: 2.4.1也可以配合installation-arguments向官方安装脚本透传额外参数。Q3在 Windows 上跑有什么要注意的两点工作流需设置默认 shell 为 bashdefaults.run.shell: bash激活.venv时路径是scripts而不是bin直接用$VENV变量最省心。小结install-poetry 把 Poetry 虚拟环境配置浓缩成三个参数策略选择的本质是一道权衡题in-project 赢在速度和简单自定义路径赢在整洁不建 venv 赢在轻量。理解了[tool.poetry]之外的这三块积木定义于 action.yml你的 CI 工作流就能按业务特点自由拼装。【免费下载链接】install-poetryGithub action for installing and configuring Poetry项目地址: https://gitcode.com/gh_mirrors/in/install-poetry创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考