Kali Linux最新版本下无法直接pip安装?教你四招完美办理‘externally-mana ...

打印 上一主题 下一主题

主题 976|帖子 976|积分 2928

Kali Linux 中办理 externally-managed-environment 错误的四种方法

引言

在 Kali Linux 的最新版本中,很多用户尝试通过 pip install 安装 Python 包时会遇到以下报错:
  1. error: externally-managed-environment
  2. × This environment is externally managed
  3. ╰─> To install Python packages system-wide, try apt install
  4.     python3-xyz, where xyz is the package you are trying to
  5.     install.
  6. ...
复制代码

这是因为 Kali Linux 接纳了 Python 的 PEP 668 标准,将系统 Python 环境标记为“外部管理”。这意味着,直接在系统环境中安装 Python 包可能会破坏系统依赖,因此被默认禁止。本文将向你先容四种常用的办理方案,帮你轻松办理这个报错!
注:kali自带python2与python3环境但缺少pip,所以需先安装pip
  1. sudo apt-get install python3-pip
复制代码

办理方案 1:从系统存储库安装 Python 包

对于 Kali Linux 系统,最简单的方法是通过 apt 命令直接从系统存储库安装所需的 Python 包。这种方法会自动处理系统依赖,避免直接修改系统 Python 环境。
在终端中运行以下命令,直接安装所需的 Python 包:
  1. sudo apt install python3-<package-name>
复制代码
比方,安装 python3-requests 包:
  1. sudo apt install python3-requests
复制代码
这种方法实用于需要系统范围内安装 Python 包的场景,特别是在包已经在 Kali 的软件堆栈中提供时。

办理方案 2:使用虚拟环境

虚拟环境能帮助我们在隔离的环境中安装包,避免与系统环境发生辩论,适合频仍安装、卸载包的用户。
详细步骤:

  • 创建虚拟环境
    1. python3 -m venv ~/myenv
    复制代码
    在主目录下创建名为 myenv 的虚拟环境。
  • 激活虚拟环境
    1. source ~/myenv/bin/activate
    复制代码
    激活虚拟环境后,命令行提示符会表现 (myenv),表示已进入虚拟环境。
  • 安装所需包
    在虚拟环境中,使用 pip install 安装包,比方:
    1. pip install githacker
    复制代码
  • 退出虚拟环境
    安装完成后,使用以下命令退出虚拟环境:
    1. deactivate
    复制代码
虚拟环境方法适合隔离依赖,不会影响系统环境,且便于管理。

办理方案 3:使用 pipx 安装(保举)

pipx 是专门用于安装和运行 Python 应用的工具,它会为每个应用创建独立的虚拟环境,避免与系统环境发生辩论。
详细步骤:

  • 安装 pipx
    Kali Linux 用户可通过以下命令直接安装 pipx(最新版 Kali 已自带):
    1. sudo apt install pipx
    复制代码
  • 确保 pipx 路径配置正确
    安装后,运行以下命令确保 pipx 的路径正确配置:
    1. pipx ensurepath
    复制代码
    该命令会将 pipx 应用路径(通常为 ~/.local/bin 或 /root/.local/bin)添加到系统的 PATH 环境变量中。
  • 重启终端或刷新环境变量
    配置完成后,重启终端或手动刷新配置:

    • 普通用户使用:
      1. source ~/.bashrc
      复制代码
    • root 用户使用:
      1. source /root/.bashrc
      复制代码

  • 使用 pipx 安装应用
    确保路径正确后,使用 pipx 安装应用:
    1. pipx install githacker
    复制代码
这种方法适合安装独立的 Python 应用,不会影响系统 Python 环境。
   注意:root 用户和普通用户的环境变量配置是差别的。比如,root 用户安装的 pipx 应用会被添加到 /root/.local/bin 中,而普通用户的安装路径是 ~/.local/bin。因此,假如 githacker 是 root 用户安装的,普通用户是无法直接使用的,反之亦然。

  
办理方案 4:强制安装(不保举)

假如你相识风险并确实需要在系统环境中安装包,可以通过强制参数来忽略 externally-managed-environment 错误。不过,强制安装可能会导致依赖辩论或破坏系统环境,建议审慎使用。
比方,通过命令强制安装 imagesearch 库:
  1. pip install --user imagesearch --break-system-packages
复制代码
你还可以创建配置文件以避免每次使用 --break-system-packages
  1. mkdir -p ~/.config/pip
  2. echo -e "[global]\nbreak-system-packages=true" > ~/.config/pip/pip.conf
复制代码
这将创建 ~/.config/pip/pip.conf 配置文件,自动添加 break-system-packages=true 配置,使得后续使用 pip install 时不再需要手动添加此参数,就像在更早版本中一样。

总结

PEP 668 规范虽然提高了 Kali Linux 系统的稳定性,但也带来了 Python 包安装的挑战。保举的办理方案是使用 虚拟环境pipx,它们能有效隔离依赖,保持系统稳定。
办理方案保举度优点缺点从系统存储库安装⭐⭐⭐⭐⭐简单直接,适合已有的系统包仅实用于系统存储库中的包使用虚拟环境⭐⭐⭐⭐强隔离,适合开辟环境需要手动管理虚拟环境使用 pipx 安装⭐⭐⭐⭐自动创建虚拟环境,适合独立应用不适合多包依赖的复杂项目强制安装(不保举)⭐⭐直接在系统环境中安装包可能破坏系统依赖,影响其他应用 假如你有其他疑问或想要讨论更多 Kali 安全工具的使用技巧,接待留言!

参考文章:如何修复 Ubuntu 24.04 中的 Python Pip 安装错误
延伸阅读:Kali 官方博客关于 PEP 668 的说明

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

老婆出轨

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表