主要观点:作者分享了关于在类 Unix 操作系统中在 Python 中模仿 Node 的 node_modules
语义的 TIL 条目更新,包括对 direnv
、uv
、不同 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 版本的方法以及避免重复代码的方式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。