我最近在 ubuntu 20.04 中安装了 python 3.10。我的安装步骤如下:
apt install python3.10
apt install python3.10-dev
apt install python3.10-distutils
问题是关于pip
。当我尝试安装任何东西时,它都会崩溃并出现错误:
ImportError: cannot import name 'html5lib' from 'pip._vendor' (/usr/lib/python3/dist-packages/pip/_vendor/__init__.py)
我有 Python 版本3.6 - 3.9安装在我的系统上。此问题仅发生在 python 版本上3.10
。此问题的原因和解决方案是什么?
答案1
以下命令解决了我的pip
问题sudo pip
:
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.10
答案2
我通过进入 pipenv shell 并在那里安装 pip 解决了完全相同的症状:
pipenv shell
curl -sS https://bootstrap.pypa.io/get-pip.py | python
这导致:
Collecting pip
Using cached pip-21.3.1-py3-none-any.whl (1.7 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 20.0.2
Uninstalling pip-20.0.2:
Successfully uninstalled pip-20.0.2
Successfully installed pip-21.3.1
此后,一切开始按预期进行,并pipenv install
取得成功。无数次安装和重新安装 python/pip/pipenv 的方法都失败了,很多次都出现了相同的导入错误。
答案3
您最好使用 pyenv 和/或 virtualenv。某些库与不同的 Python 版本不兼容。此外,pip 不知道您要为哪个 Python 版本安装请求的库。
这里有一些教程,或者去 YouTube 搜索。
https://realpython.com/intro-to-pyenv/ https://docs.python.org/3/library/venv.html