系统升级后 pip 消失了

系统升级后 pip 消失了

我刚刚从 22.10 升级到 23.04,没有任何问题。但是升级后,我的 pip 无法正常工作,我不知道如何让它再次工作。

如果我只是想称呼它:

pip
bash: /usr/local/bin/pip: cannot execute: required file not found

使用 sudo:

sudo pip
sudo: unable to execute /usr/local/bin/pip: No such file or directory

可执行文件似乎在那里:

ls -la /usr/local/bin/pip*
-rwxr-xr-x 1 root root 224 febr  21 12:13 /usr/local/bin/pip
-rwxr-xr-x 1 root root 224 febr  21 12:13 /usr/local/bin/pip3
-rwxr-xr-x 1 root root 224 febr  21 12:13 /usr/local/bin/pip3.10

如果我在 python (w conda) 中调用它:

python3 -m pip
/home/gerdos/miniconda3/bin/python3: No module named pip.__main__; 'pip' is a package and cannot be directly executed

没有 conda 它似乎可以工作,但是行为很奇怪:

python3 -m pip install --upgrade pip
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.

我已经尝试使用 apt 删除并安装 pip,但没有帮助。

sudo apt remove python-pip
sudo apt install python-pip

我使用笔记本电脑时 90% 的时间都在使用 Python,因此让 pip 和 conda 正常工作对我来说至关重要。我完全不知道发生了什么。

所以我找到了这个答案:https://stackoverflow.com/questions/75602063/pip-install-r-requirements-txt-is-failing-this-environment-is-externally-manag

我理解了error: externally-managed-environment,但是问题的其他部分仍然存在。我猜我的 conda 坏了?

答案1

首次安装pipx

$ sudo apt install pipx

然后像这样使用它:

$ pipx install yt-dlp
$ pipx upgrade-all

请注意,你应该使用pipx“普通”用户身份安装 Python 包,并且不是全系统的. 切勿使用sudo pip ...sudo pipx ...

也可以看看这个 AskUbuntu 问题

https://pypa.github.io/pipx/

pip 是一个通用的软件包安装程序,适用于没有环境隔离的库和应用程序。pipx 专为应用程序安装而设计,因为它增加了隔离,但仍使应用程序在你的 shell 中可用:pipx 为每个应用程序及其相关包创建一个隔离的环境。

答案2

顺便说一下,我在 Ubuntu 20.04 上一直在使用

$ python3 -m pip——帮助
...

$ python3 -m pip 安装--升级 pip
收集点数
  下载 pip-23.2.1-py3-none-any.whl (2.1 MB)
     |██████████████████████████████| 2.1MB 1.2MB/秒
安装收集的软件包:pip
成功安装pip-23.2.1
$

答案3

× 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.
sudo apt install python3-pip

相关内容