Python 项目 - 本地虚拟环境管理重制版

主要观点:作者分享了关于在类 Unix 操作系统中在 Python 中模仿 Node 的 node_modules 语义的 TIL 条目更新,包括对 direnvuv、不同 Python 安装方式以及管理虚拟环境机制的讨论。

关键信息:

  • direnv:进入目录时会执行 .envrc 文件,智能且能撤销更改,是古老 .env 文件的更强大版本。
  • uv:被 Astral 发布并接管 Rye,在 Python 打包和项目工作流工具中进入激动人心的过渡时期,速度比 virtualenv 快,在项目模式下有虚拟环境支持。
  • Python 安装:从 [https://www.python.org/downlo...] 获取二进制 Python 安装程序,使用 Gregory Szorc 的 [python-build-standalone] 填充缺失部分,Linux 上使用 [deadsnakes]
  • 虚拟环境管理:

    • 对于无严格锁定的包,使用 .envrc 结合 uv.python-version-default 文件创建和激活虚拟环境,可在 GitHub Actions 中使用。
    • 对于有严格锁定的应用,使用 uv sync 和 PDM 管理虚拟环境,可在 Docker 容器中使用。

重要细节:

  • 作者提到自己的工作流可能不适合其他人,强调不应记住太多东西,因为会经常忘记。
  • 给出了 Fish shell 函数用于在需要时重新创建虚拟环境。
  • 解释了在 .envrc 中提取 Python 版本的方法以及避免重复代码的方式。
阅读 27
0 条评论