8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

每次使用 pip 3 时,如何解决“错误:外部管理环境”?

admin 3月前

365 0

当我在 Linux 机器上(使用 Debian 或 Ubuntu 或派生发行版)运行 pip install xyz 时,出现此错误:错误:外部管理环境 × 此环境由外部管理>...

当我 pip install xyz 在 Linux 机器上运行时(使用 Debian 或 Ubuntu 或派生发行版),出现此错误:

error: externally-managed-environment

× This environment is externally managed
> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

这个错误是什么意思?我该如何避免?为什么 pip install xyz 它不能像我使用 升级系统之前那样工作 sudo apt upgrade

帖子版权声明 1、本帖标题:每次使用 pip 3 时,如何解决“错误:外部管理环境”?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由admin在本站《python》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这回答了你的问题了吗:

  • 我有这样的代码:import ospath = os.getcwd()final = path +'\xulrunner.exe ' + path + '\application.ini'print(final)我想要这样的输出:C:\Users\me\xulrunner.exe C:\Users\me\application.ini但是

    我有这个代码:

    import os
    path = os.getcwd()
    final = path +'\xulrunner.exe ' + path + '\application.ini'
    print(final)
    

    我想要如下输出:

    C:\Users\me\xulrunner.exe C:\Users\me\application.ini
    

    但我却收到如下错误:

    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \xXX escape
    

    我不希望将反斜杠解释为转义序列,而是将其解释为文字反斜杠。我该怎么做?


    Note that if the string should only contain a backslash - more generally, should have an odd number of backslashes at the end - then raw strings cannot be used . See 如何打印单个反斜杠? . If you want to avoid the need for escape sequences, see 如何在 Python 中编写字符串文字而不对其进行转义? .

  • 有关的:

  • 也可以看看

  • 对转义序列有一个很好的概述

  • 安装 Python 库和应用程序的正确方法是尽可能将它们安装在 Python 虚拟环境中(此规则的例外情况非常罕见)。

    正如错误消息所示,有两种常见的解决方案可以实现此目的。要么使用为您创建虚拟环境的工具,要么直接自己创建虚拟环境。

    如果您尝试安装的是应用程序,那么强烈建议使用 pipx 。 pipx 可作为系统包安装在 Debian 系统和基于 Debian 的系统(如 Ubuntu)上:

    apt install pipx
    pipx install some-python-application
    

    要自己创建虚拟环境,您可以使用 Python 的 venv :

    python -m venv my-venv
    my-venv/bin/pip install some-python-library
    

    但是,如果您已经仔细考虑过各种选择,但仍然决定确实要安装“系统范围”的软件包并冒着破坏系统的风险,那么有两种解决方案:

    • use pip 的论点 --break-system-packages ,
    • 添加以下几行到 ~/.config/pip/pip.conf
    [global]
    break-system-packages = true
    
  • 也可以看看:

  • C.J. 3月前 0 只看Ta
    引用 9

    .....当您使用--user......时也会发生此错误

  • 也可以看看:

  • 1. 正如它所建议的,一些软件包可以通过 apt install xyz 安装,但对我来说,这对某些软件包不起作用 2. 如何将 Jupyter Notebooks 与 venv 一起使用?

  • 引用 12

    @sagitta 您可以创建一个 venv,然后选择它作为笔记本内核。如果您使用的是 VSCode,则可以按 F1,然后按 Notebook:选择 Notebook 内核。如果您从控制台运行 jupyter,只需激活 venv,安装 jupyter 并启动它。

  • 要直接回答你的问题,请放在 r 字符串前面。

    final= path + r'\xulrunner.exe ' + path + r'\application.ini'
    

    有关 Python 站点的更多信息,请访问此处

    字符串和字节文字都可以选择以字母“r”或“R”作为前缀;这样的字符串称为原始字符串,并将 反斜杠视为文字字符

    但更好的解决方案是 os.path.join

    final = (os.path.join(path, 'xulrunner.exe') + ' ' +
             os.path.join(path, 'application.ini'))
    

    (为了便于阅读,我将其分成两行,但如果您愿意,也可以将整个内容放在一行。)

    我将提到,你可以在文件路径中使用正斜杠,Python 会根据需要自动将它们转换为正确的分隔符(Windows 上为反斜杠)。因此

    final = path + '/xulrunner.exe ' + path + '/application.ini'
    

    应该可以。但最好还是使用它, os.path.join 因为它可以清楚地说明您要做什么。

  • @Some 我相信只有当有系统包需要破坏时,它才会破坏系统包。由于你说你的操作系统没有这个包,所以你只需使用 --break-system-packages 一次就​​可以安装 python2-virtualenv。(如果 debian 确实将它添加为包,你可能需要 pip uninstall 它。)

  • Python 不会将 / 转换为 `,而是 /` 是 Windows 上的有效路径分隔符。

  • balu 3月前 0 只看Ta
    引用 16

    或者,您可以通过运行 python3 -m pip config set global.break-system-packages true 来设置该值

  • pad 3月前 0 只看Ta
    引用 17

    请注意,Windows 通常也可以使用正斜杠代替反斜杠;Python 不需要转换它们。

  • 我从 Python 3.11+ 开始遇到此错误。

    请考虑 相关评论 Alok 在这篇文章中收到的 JackLeEmmerdeur :
    This deletion of file is not safe. This can lead to Broken Package Management, Conflicting Installations and Permission Issues

    因此,以下是 更新后的答案 ,它允许我 解决这个问题,而不会危及系统的风险

    sudo mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.old
    
  • eliu 3月前 0 只看Ta
    引用 19

    @DavidHeffernan 你的评论有点混乱,看起来你试图在反斜杠周围使用反引号。这不起作用,原因与它给 Python 带来麻烦的原因相同,SO 的 markdown 认为这是对下一个字符的转义,按字面意思理解。我已经学会在反斜杠后面加一个空格。

  • 但请注意,这仍可能会破坏你的系统

返回
作者最近主题: