Pip 无法在 Ubuntu 上的 Python 3.10 上运行
- 2024-11-05 08:37:00
- admin 原创
- 44
问题描述:
我是 Ubuntu 和 Linux 的新手。我刚刚尝试使用 更新 Python sudo apt-get install python3.10
。运行时python3.10 -m pip install <library name>
总是收到以下错误:
Traceback (most recent call last):
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/lib/python3/dist-packages/pip/__main__.py", line 19, in <module>
sys.exit(_main())
File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/usr/lib/python3/dist-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 24, in <module>
from pip._internal.cli.req_command import RequirementCommand
File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 15, in <module>
from pip._internal.index.package_finder import PackageFinder
File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 21, in <module>
from pip._internal.index.collector import parse_links
File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 12, in <module>
from pip._vendor import html5lib, requests
ImportError: cannot import name 'html5lib' from 'pip._vendor' (/usr/lib/python3/dist-packages/pip/_vendor/__init__.py)```
我尝试执行 sudo apt-get install python3.10-html5lib,它下载了一些东西,但没有修复错误。我该如何修复这个错误?
解决方案 1:
这可能是由于系统版本太旧造成的pip
。
使用以下命令安装最新版本:
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
和测试结果
python3.10 -m pip --version
例如
pip 22.2.2 from <home>/.local/lib/python3.10/site-packages/pip (python 3.10)
然后测试升级
python3.10 -m pip install --upgrade pip
例如
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in <home>/.local/lib/python3.10/site-packages (22.2.2)
解决方案 2:
我尝试了上述所有答案,但对我都不起作用。我的python3版本是3.10.2。
所以我需要为pip安装适当的版本。
不过我尝试过
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
但没有用,所以我试过了
curl https://bootstrap.pypa.io/get-pip.py | sudo python3
这对我有用
解决方案 3:
这是@mirekphd 评论的扩展版本,它为我提供了一个解决方案,该解决方案在我的笔记本电脑和我们的服务器上都完美运行,并且不会弄乱任何东西。
第一步,如果还没有完成,请添加“deadsnakes”存储库,以便可以下载最新的 python 相关软件并保持更新。
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa
而且,如果你尚未安装 Python 3.10,你可以这样做:
sudo apt install python3.10
最后,为了pip
工作,您需要安装distutils
与 3.10 兼容的软件包:
apt install python3.10-distutils
之后您可以使用pip
以下方式:
python3.10 -m pip _rest_of_the_pip
上述操作是必要的,因为常规pip
命令将使用系统默认的 python 版本而不是 3.10。
如果经常使用pip
,则可以为文件添加别名,.bashrc
例如:
alias pip310='python3.10 -m pip'
之后您就可以像这样使用它:
pip310 install blah
解决方案 4:
我在 GitHub Actions 中遇到了这个问题。我的解决方案是使用虚拟环境来与系统的其他部分隔离。确保python3.10-venv
已安装,然后执行
python3.10 -m venv .venv
source .venv/bin/activate
pip install ...
...
deactivate
解决方案 5:
在 Ubuntu 18|20 中安装 python 3.10、pip 和 venv
sudo apt update && sudo apt upgrade -y
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.10
python3.10 --version
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
python3.10 -m pip --version
python3.10 -m pip install --upgrade pip
sudo apt install python3.10-venv
创建虚拟环境,
python3.10 -m venv venv3.10
source venv3.10/bin/activate
解决方案 6:
尝试:
pip3.10 install <package name>
确保你拥有最新版本的 pip 和 python3.10
解决方案 7:
我在安装 pip 时也遇到了一些问题
由于sudo apt install python3-pip
仍然参考 pip3.8(至少在 mint Cinnamon 20.2 上),因此需要以其他方式安装 pip。
使用curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
,结果发现 pip 未找到
ImportError:没有名为“pip._internal”的模块
我发现ensurepip命令是内置的,并且针对python3.10的正确目录
运行python3.10 -m ensurepip
安装setuptools和pip并修复我丢失的pip模块。
之后可以使用 升级 Pip python3.10 -m pip install -U pip
。
它也可以与 sudo 一起使用(有些需要以 sudo 身份运行 pip)
解决方案 8:
在撰写本文时,如以下链接所述。 Python 3.10 仍然不稳定。 也许测试 python3.9 会发生什么并查看问题是否出在您的本地安装中是一个好主意。
无论如何,从干净的 ubuntu(docker)安装中运行(具有sudo
权限)
apt-get install software-properties-common
apt-get install python3.9
python3.9 --version
#
apt-get install python3.10
python3.10 --version
Python 3.9.5
我分别得到了答案bash: python3.10: command not found
。所以我猜问题可能出在 python 3.10 存储库中......目前。
但是,apt-get install
不会直接更新您的“默认”python。您可以使用以下方法检查您的安装
python --version
python3 --version
无论如何,如果您仍想安装 python3.10,也许上面的链接可以帮助您。
解决方案 9:
在安装了 python 3.8 的 Ubuntu 上安装 python 3.10 后,我遇到了同样的错误。卸载 pip 并再次安装
sudo apt-get remove -y python3-pip
sudo apt-get install -y python3-pip
它对我有用,但是 pip3.10 install modulename 出现同样的错误,而 python3.10 -m pip install modulename 工作正常。
解决方案 10:
用于为 Ubuntu 安装 python 和 pip 3.10 的代码都在那里,只需替换其中一行代码就足够了,将基础镜像更改为最新的 Ubuntu LTS 版本(即ubuntu:focal
),以便获得Dockerfile
基于 Debian 的官方 python 3.10 镜像(我使用了python 3.10 bullseye slim Dockerfile)。Docker 构建只花了 8 分钟,下面是它pip3.10
确实有效的证明:
$ docker run mirekphd/python3.10-ubuntu20.04 pip -V
输出:
pip 21.3.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
或者更高级的例子:
$ docker run -it --rm --name python3.10-ubuntu20.04 mirekphd/python3.10-ubuntu20.04:latest bash -c 'pip --version; pip install numpy --user --no-cache; pip show numpy; python -c "import numpy as np; print(np.ones(5))"'
输出:
pip 21.3.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
Collecting numpy
Downloading numpy-1.21.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB)
|████████████████████████████████| 15.9 MB 34.6 MB/s
Installing collected packages: numpy
WARNING: The scripts f2py, f2py3 and f2py3.10 are installed in '/root/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed numpy-1.21.4
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Name: numpy
Version: 1.21.4
Summary: NumPy is the fundamental package for array computing with Python.
Home-page: https://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email:
License: BSD
Location: /root/.local/lib/python3.10/site-packages
Requires:
Required-by:
[1. 1. 1. 1. 1.]
注意:为了升级 pip,我只需添加此行(之前CMD
):
RUN python -m pip install --upgrade pip
解决方案 11:
在我的情况下,这个问题与之前的 conda 安装有关...所以我通过更正 PATH 解决了它。因为 Python3.10 和 pip3 也安装在 ~/.local/bin 中
最糟糕的是,我在 ~/.bashrc 中添加了最后一行硬编码,如下所示
nano ~/.bashrc
添加最后一行:
export PATH=/usr/local/sbin:/sbin:/usr/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/local/games:/usr/games:/home/$USER/.local/bin
保存,关闭并运行
source .bashrc
这还不够,因为在删除 Conda 的路径后,它仍然将 pip 安装在 /usr/bin 中,我通过重命名这个 pip 解决了这个问题
cd /usr/bin
sudo mv pip kkpip
sudo mv pip3 kkpip3
完毕
pip3 list
瞧!
解决方案 12:
在没有管理员权限并且没有curl
安装的情况下,我能够找到一个简单的解决方案:
wget -qO- https://bootstrap.pypa.io/get-pip.py | python3
希望这有帮助!
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件