• 亮色
  • 深色
  • 自动
  • RSS 订阅

    从 pyenv + pdm 到 micromamba + pdm

    2024-03-23

    几个月前发现 pyenv 这个 python 版本管理工具,发现对于 python 版本的管理非常好用,但是随着最近 pyenv 作者的一些个人原因(记错了,是 pipenv),以及 pyenv 自身的一些问题,比如当我使用 pdm 创建虚拟环境后,输入 python 命令,却还总是使用 pyenv 的 python。让我开始想尝试其他虚拟环境管理器。

    最近 ruff 的团队推出了他们的 python 虚拟环境管理器。简单试用了一下,虽然很快,并且不依赖 python,但是使用的过程中有些地方感觉挺莫名其妙的,比如安装依赖的时候要指定 uv pip install,这个 pip 就让我很不舒服,虽然能让人一眼就明白是在安装 python 的依赖,但是作为一个 python 的包管理器,直接 install 不就好了吗?难不成后面还要支持其他语言,做一个 uv go installuv npm install 吗?而且命令里虽然是用的 pip 安装包,但创建出来的 python 虚拟环境却不带 pip。此外,内置的 pip-compile 工具感觉也不如 pdm、poetry 那样将直接写到 pyproject.toml 里面直观。

    想起之前用过的 conda。anaconda 太大了,况且我也不做数据科学相关的活。于是就在 miniconda 和 micromamba 之间抉择。在用法相同的工具里比较的话,感觉还是 micromamba 更快一点,所以还是决定使用 micromamba。

    安装 Micromamba

    在 Linux 下安装 Micromamba 很简单,只需要执行这条命令就可以自动安装:

    "${SHELL}" <(curl -L micro.mamba.pm/install.sh)
    

    安装过程示例,全按回车就行

    安装完成后可以设置个 conda 别名,使习惯使用 conda 的人更方便使用。将下面这段命令粘贴到你所使用的 SHELL 的交互式配置文件中,例如 ~/.bashrc 或者 ~/.zshrc

    alias conda=micromamba
    

    Tip

    输入 micromamba 之后的命令都能通过自动补全。 例如 conda cre<Tab键> 就能自动补全成 conda create

    简单上手

    因为我基本上一个项目用一个环境,所以通常流程是这样:

    1. 创建项目目录

      mkdir newproject
      cd newproject
      
    2. 使用 micromamba 在当前目录下创建 python 环境

      # -p 参数是指定路径 ./.venv 是当前目录下 ./ 是不能少的
      conda create -p ./.venv python=3.11
      # 激活虚拟环境
      conda activate ./.vemv
      
    3. 安装 pdm,使用 pdm init 初始化项目文件

      pip install pdm -U
      pdm init
      

    手动配置命令补全

    如果安装时没有选择初始化 shell 交互式配置文件(就是像 ~/.bashrc~/.zshrc 一类的文件),后面想设置,可以执行下述命令。

    micromamba shell completion