![系统升级后 pip 消失了](https://linux22.com/image/1196421/%E7%B3%BB%E7%BB%9F%E5%8D%87%E7%BA%A7%E5%90%8E%20pip%20%E6%B6%88%E5%A4%B1%E4%BA%86.png)
我刚刚从 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 正常工作对我来说至关重要。我完全不知道发生了什么。
我理解了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