技术 2026年09月16日 👤 mdo 👁 1 阅读

创建一个独立的“沙盒”环境

这个错误是 Linux 系统(通常是 Ubuntu 23.04+ 或 Debian 12+)为了保护系统自身的稳定性而引入的安全机制(PEP 668)。它不允许你直接使用 pip 把第三方包安装到全局系统环境中,以免破坏系统自带的 Python 工具。

针对你的不同需求,有以下 三种最佳解决方案:

🛠️ 方案一:使用虚拟环境(最标准、推荐)

如果你在开发自己的 Python 项目,应该为项目创建一个独立的“沙盒”环境,这样包之间不会相互冲突。

  1. 安装虚拟环境工具(如果还没安装):

    bash

    sudo apt update
    sudo apt install python3-venv python3-full
    

    请谨慎使用此类代码。

  2. 创建虚拟环境(在你的项目目录下,将 myenv 替换为你喜欢的名字):

    bash

    python3 -m venv myenv
    

    请谨慎使用此类代码。

  3. 激活虚拟环境:

    bash

    source myenv/bin/activate
    

    请谨慎使用此类代码。

    激活后,你的终端提示符前会出现 (myenv),此时你可以像以前一样正常使用 pip install <包名> 了。

  4. 退出虚拟环境(用完后):

    bash

    deactivate
    

    请谨慎使用此类代码。


🚀 方案二:使用 pipx 安装全局命令行工具(最省心)

如果你不是在写代码,只是想安装一个现成的 Python 工具(例如 black、ansible、yt-dlp 等命令行程序),pipx 是最好的选择。它会自动为这个工具创建独立的虚拟环境,并把命令软链接到全局。

  1. 安装 pipx:

    bash

    sudo apt update
    sudo apt install pipx
    pipx ensurepath
    

    请谨慎使用此类代码。

    (执行完 pipx ensurepath 后,建议重启一下终端)

  2. 使用 pipx 安装工具:

    bash

    pipx install <工具名>
    

    请谨慎使用此类代码。


⚠️ 方案三:强制绕过限制(仅限临时测试,不推荐)

如果你非常确定需要将包安装到全局系统,并且不想用虚拟环境,可以使用 --break-system-packages 参数强制执行。请注意,这可能会导致系统自带的某些 Python 软件崩溃!

bash

pip3 install <包名> --break-system-packages

请谨慎使用此类代码。

请问你当前是在开发自己的 Python 项目,还是只想安装某个现成的命令行工具?