pip3 install -e .[stable]讲解

时间:2024-11-13 06:58:42

pip3 install -e .[stable]这个命令用于通过 pip 安装当前目录下的 Python 包,同时会安装定义在 setup.pypyproject.toml[stable] 选项下的额外依赖。以下是各部分的含义:

  • pip3 install -e .:表示以可编辑模式(-e)安装当前目录(.)下的包。安装后,任何对源代码的修改都会立即生效,无需重新安装。

  • [stable]:这是一个可选依赖组,通常在 setup.pypyproject.toml 文件中定义,适合不同需求的额外依赖项。例如,stable 组可能包含经过严格测试和稳定性的依赖项。

pip3 install -e .[stable] 的作用是以可编辑模式安装当前包,并安装 stable 组中定义的依赖。

-e 选项用于可编辑模式安装 Python 包。使用 -e 的好处主要体现在以下几个方面:

  1. 即时生效的代码更改:在可编辑模式下安装后,对源代码的任何修改都会立即生效,而不需要重新安装。这对于开发和调试非常方便。

  2. 创建符号链接-e 选项会在 site-packages 目录中创建一个指向源代码目录的符号链接,而不是复制一份代码。这意味着 Python 包管理器会直接使用源代码目录中的代码。

  3. 简化开发流程:在开发包或脚本时,使用可编辑模式可以方便地在源代码和使用代码的地方之间进行切换,无需重新安装。

总的来说,pip install -e . 是开发环境下常用的安装方式,适用于需要频繁更改代码的场景。

报错处理

pip install -e .[stable]
zsh: no matches found: .[stable]

在 zsh 中,.[stable] 会被解释为一个模式匹配语法,这就是为什么你会遇到 no matches found 的错误。可以通过以下方式解决:

解决方法

  1. 使用引号:在 .[stable] 部分加上引号,告诉 zsh 不要尝试模式匹配。

    pip install -e ".[stable]"
    
  2. 关闭 zsh 的模式匹配:如果你使用这个语法较多,可以先禁用 zsh 的模式匹配。输入以下命令关闭通配符匹配(仅对当前会话有效):

    setopt NO_MATCH
    

    然后再运行命令:

    pip install -e .[stable]
    

第一种方法较为常用,简单且仅影响当前命令。