Pip 无法在 Ubuntu 上的 Python 3.10 上运行

2024-11-05 08:37:00
admin
原创
45
摘要:问题描述:我是 Ubuntu 和 Linux 的新手。我刚刚尝试使用 更新 Python sudo apt-get install python3.10。运行时python3.10 -m pip install <library name>总是收到以下错误:Traceback (most ...

问题描述:

我是 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

希望这有帮助!

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用