BRI*_*ANE 77 python pip python-3.x
/usr/bin/python3
我最近在我的 ubuntu 系统上安装了 python3.10,我相信我从到建立了一个链接/usr/bin/python3.10
如果我跑步,python --version
我会得到Python 2.7.17
,如果我跑步,python3 --version
我会得到Python 3.10.2
我相信我所做的事情破坏了我的全局 python / pip 中的某些内容。
每当我尝试全局使用 pip 时,都会收到此错误:
Traceback (most recent call last):
File "/usr/local/bin/pip", line 7, in <module>
from pip._internal.cli.main import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 22, in <module>
from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 73, in <module>
vendored("pkg_resources")
File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored
__import__(modulename, globals(), locals(), level=0)
File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 77, in <module>
File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/packaging/requirements.py", line 9, in <module>
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 672, in _load_unlocked
File "<frozen importlib._bootstrap>", line 632, in _load_backward_compatible
File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/extern/__init__.py", line 43, in load_module
File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/pyparsing.py", line 943, in <module>
AttributeError: module 'collections' has no attribute 'MutableMapping'
Run Code Online (Sandbox Code Playgroud)
经过谷歌搜索后,我认为问题是我的 pip 是使用旧版本的 python 制作的,所以我尝试运行:
sudo apt remove python-pip python3-pip
sudo apt install python-pip python3-pip
Run Code Online (Sandbox Code Playgroud)
但即使在此之后我仍然遇到与 pip 相同的错误。
我确实有一个与 django 项目(使用 python 3.10)一起使用的 virtualenv,如果我使用它,我可以在那里使用 pip,但我认为这只是显示 venv 中的 pip 已正确配置
运行结果ls -la /usr/bin/ | grep -i
:
brick@nextgearserver:/etc/apache2$ ls -la /usr/bin/ | grep -i "pip\|python"
lrwxrwxrwx 1 root root 26 Mar 26 2018 dh_pypy -> ../share/dh-python/dh_pypy
-rwxr-xr-x 1 root root 1056 Apr 16 2018 dh_python2
lrwxrwxrwx 1 root root 29 Mar 26 2018 dh_python3 -> ../share/dh-python/dh_python3
lrwxrwxrwx 1 root root 13 Dec 7 2018 lesspipe -> /bin/lesspipe
lrwxrwxrwx 1 root root 23 Feb 27 2021 pdb2.7 -> ../lib/python2.7/pdb.py
lrwxrwxrwx 1 root root 24 Jan 15 13:03 pdb3.10 -> ../lib/python3.10/pdb.py
lrwxrwxrwx 1 root root 23 Dec 8 16:08 pdb3.6 -> ../lib/python3.6/pdb.py
-rwxr-xr-x 1 root root 292 Apr 30 2021 pip
-rwxr-xr-x 1 root root 292 Apr 30 2021 pip2
-rwxr-xr-x 1 root root 293 Apr 30 2021 pip3
lrwxrwxrwx 1 root root 31 Oct 25 2018 py3versions -> ../share/python3/py3versions.py
lrwxrwxrwx 1 root root 26 Mar 26 2018 pybuild -> ../share/dh-python/pybuild
lrwxrwxrwx 1 root root 9 Apr 16 2018 python -> python2.7
lrwxrwxrwx 1 root root 9 Apr 16 2018 python2 -> python2.7
-rwxr-xr-x 1 root root 3633000 Feb 27 2021 python2.7
lrwxrwxrwx 1 root root 33 Feb 27 2021 python2.7-config -> x86_64-linux-gnu-python2.7-config
lrwxrwxrwx 1 root root 16 Apr 16 2018 python2-config -> python2.7-config
lrwxrwxrwx 1 root root 19 Jan 30 15:07 python3 -> /usr/bin/python3.10
-rwxr-xr-x 1 root root 5515256 Jan 15 13:03 python3.10
-rwxr-xr-x 2 root root 4526456 Dec 8 16:08 python3.6
lrwxrwxrwx 1 root root 33 Dec 8 16:08 python3.6-config -> x86_64-linux-gnu-python3.6-config
-rwxr-xr-x 2 root root 4526456 Dec 8 16:08 python3.6m
lrwxrwxrwx 1 root root 34 Dec 8 16:08 python3.6m-config -> x86_64-linux-gnu-python3.6m-config
lrwxrwxrwx 1 root root 16 Oct 25 2018 python3-config -> python3.6-config
-rwxr-xr-x 1 root root 384 Feb 5 2018 python3-futurize
lrwxrwxrwx 1 root root 10 Oct 25 2018 python3m -> python3.6m
lrwxrwxrwx 1 root root 17 Oct 25 2018 python3m-config -> python3.6m-config
-rwxr-xr-x 1 root root 388 Feb 5 2018 python3-pasteurize
-rwxr-xr-x 1 root root 152 Nov 11 2017 python3-pbr
lrwxrwxrwx 1 root root 16 Apr 16 2018 python-config -> python2.7-config
lrwxrwxrwx 1 root root 29 Apr 16 2018 pyversions -> ../share/python/pyversions.py
-rwxr-xr-x 1 root root 2971 Feb 27 2021 x86_64-linux-gnu-python2.7-config
-rwxr-xr-x 1 root root 3246 Jan 15 13:03 x86_64-linux-gnu-python3.10-config
lrwxrwxrwx 1 root root 34 Dec 8 16:08 x86_64-linux-gnu-python3.6-config -> x86_64-linux-gnu-python3.6m-config
-rwxr-xr-x 1 root root 3283 Dec 8 16:08 x86_64-linux-gnu-python3.6m-config
lrwxrwxrwx 1 root root 33 Oct 25 2018 x86_64-linux-gnu-python3-config -> x86_64-linux-gnu-python3.6-config
lrwxrwxrwx 1 root root 34 Oct 25 2018 x86_64-linux-gnu-python3m-config -> x86_64-linux-gnu-python3.6m-config
lrwxrwxrwx 1 root root 33 Apr 16 2018 x86_64-linux-gnu-python-config -> x86_64-linux-gnu
python2.7-config
Run Code Online (Sandbox Code Playgroud)
小智 51
就我而言,升级以下软件包适用于 Windows 11:
pip install --upgrade pip wheel setuptools requests
Run Code Online (Sandbox Code Playgroud)
小智 44
我在 ubuntu 22.04 上遇到了同样的错误,这就是我解决它的方法。
如果您使用 apt 安装了 pipelinev,请删除它
sudo apt remove pipenv
Run Code Online (Sandbox Code Playgroud)
安装 pipelinenv 取消 pip
pip3 install pipenv
Run Code Online (Sandbox Code Playgroud)
激活虚拟环境
python3 -m pipenv shell
Run Code Online (Sandbox Code Playgroud)
从 pip 文件安装
pipenv install
Run Code Online (Sandbox Code Playgroud)
Jus*_*ang 43
MutableMapping
模块中的属性collections
已移至collections.abc
in中python3.10
。
在您的情况下,/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/pyparsing.py
使用集合的 MutableMapping 属性。
如果您可以访问源代码,请将所有collections.MutableMapping
内容替换为collections.abc.MutableMapping
.
一个例子 :
import collections
if sys.version_info.major == 3 and sys.version_info.minor >= 10:
from collections.abc import MutableMapping
else:
from collections import MutableMapping
Run Code Online (Sandbox Code Playgroud)
小智 12
我不确定这是否符合“答案”的条件,但要为依赖于 Python 3.10+ 的存在collections.MutableMapping
且尚未更新的库的情况提供额外的解决方法,您可以放置以下代码直接在导入受影响的库之前:
import sys
if sys.version_info.major == 3 and sys.version_info.minor >= 10:
import collections
setattr(collections, "MutableMapping", collections.abc.MutableMapping)
Run Code Online (Sandbox Code Playgroud)
对于 3.10 或更高版本 \xe2\x80\x93
\nfrom collections.abc import MutableMapping\n
Run Code Online (Sandbox Code Playgroud)\n对于 3.9 或更低版本 \xe2\x80\x93
\nfrom collections import MutableMapping\n
Run Code Online (Sandbox Code Playgroud)\n如果您希望此环境完全动态,请调用以下代码。
\nimport collections \nif sys.version_info.major == 3 and sys.version_info.minor >= 10:\n from collections.abc import MutableMapping\nelse:\n from collections import MutableMapping\n
Run Code Online (Sandbox Code Playgroud)\n