ModuleNotFoundError: 找不到模块pip._vendor.six

我刚开始使用Ubuntu(20.04.2.0 LTS),并尝试让Python3.9.6和Pip与Virtualenv一起工作。

希望有经验的Ubuntu用户能帮助我:)

使用默认的Python(3.8.10)对我来说没有问题:

$ python3 -V Python 3.8.10

$ whereis python3 
/usr/bin/python3.8

$ pip3 -V 
pip 21.1.3 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)

$ virtualenv env_python3.8 
created virtual environment CPython3.8.10.final.0-64 in 155ms

$ source env_python3.8/bin/activate

(env_python3.8) usagi@dev:~$ pip list 
Package Version
pip 20.0.2 pkg-resources 0.0.0
setuptools 44.0.0 wheel 0.34.2

(env_python3.8) usagi@dev:~$ pip install django 
Successfully installed asgiref-3.4.1 django-3.2.5 pytz-2021.1 sqlparse-0.4.1

(env_python3.8) usagi@dev:~$ pip list 
Package Version
asgiref 3.4.1
Django 3.2.5
pip 20.0.2 pkg-resources 0.0.0
pytz 2021.1 setuptools 44.0.0 sqlparse 0.4.1
wheel 0.34.2

这些步骤在没有任何问题的情况下运行,但是如果我对Python3.9.6(从源代码)执行相同的步骤,它将无法工作。
$ python3.9 -V 
Python 3.9.6

$ whereis python3 
/usr/local/bin/python3.9

Guess this is one the problems, pip3 looking at Python3.8
$ pip3 -V 
pip 21.1.3 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)

$ virtualenv -p /usr/local/bin/python3.9 env_python3.9 
created virtual environment CPython3.9.6.final.0-64 in 113ms

$ source env_python3.9/bin/activate

(env_python3.9) usagi@dev:~$ python -V 
Python 3.9.6

(env_python3.9) usagi@dev:~$ pip -V 
Traceback (most recent call last): File "/home/usagi
/env_python3.9/bin/pip", line 5, in from pip._internal.cli.main import main File "/home
/usagi/env_python3.9/lib/python3.9/site-packages/pip/_internal/cli/main.py", line 10, in 
from pip._internal.cli.autocompletion import autocomplete File "/home/usagi/env_python3.9
/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py", line 9, in from 
pip._internal.cli.main_parser import create_main_parser File "/home/usagi/env_python3.9
/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py", line 7, in from 
pip._internal.cli import cmdoptions File "/home/usagi/env_python3.9/lib/python3.9/site-
packages/pip/_internal/cli/cmdoptions.py", line 24, in from pip._internal.exceptions 
import CommandError File "/home/usagi/env_python3.9/lib/python3.9/site-packages
/pip/_internal/exceptions.py", line 10, in from pip._vendor.six import iteritems 
ModuleNotFoundError: No module named 'pip._vendor.six'

尝试查找关于错误的信息,但未能找到解决方案。
如果你们中有任何人遇到过相同的问题或者认识这个问题并愿意帮助我,我将非常感激所有的帮助。
最好的祝福,/Mikael

1python3.9 -m pip --version 返回什么? - ajgringo619
嗨 @ajgringo619, 谢谢你的回答! 该命令返回:$ python3.9 -m pip --version /usr/local/bin/python3.9: No module named pip.这里可能是问题所在。下一个问题:我如何将pip安装到/usr/local/bin/python3.9? - Usagi-Dev
你是怎么安装Python3.9的? - ajgringo619
你好!我已经从源代码安装了Python3.9.6。 - Usagi-Dev
尝试使用sudo apt install Python 3.9进行安装,结果在虚拟环境和pip下都可以运行。问题是我无法精确选择要安装的Python版本。 - Usagi-Dev
如果你决定继续使用编译版本,只需在你的configure命令中添加--with-ensurepip=install参数重新构建即可。我不会保留两个版本。 - ajgringo619
我重新安装了我的电脑,使用Ubuntu系统。通过--with-ensurepip = install选项安装了Python。使用Virtualenv创建了一个虚拟环境。一切都正常工作,直到我使用Pip时再次遇到相同的错误信息:“ModuleNotFoundError: No module named 'pip._vendor.six'”。你有什么其他想法,可能是什么原因导致这个问题? - Usagi-Dev
2个回答

我在Ubuntu 20.04 LTS上使用pipenv运行Django应用程序时遇到了"ModuleNotFoundError: No module named 'pip._vendor.six'"的错误。解决方法是删除一些旧的virtualenv版本文件,命令为"rm -rf ~/.local/share/virtualenvs",之后包安装开始正常工作,我能够成功运行应用程序。也许你可以试试这个方法。
我在另一个Stack Overflow的帖子https://stackoverflow.com/a/71542588/1669514中给出了更详细的答案,但我想在这里也提一下,因为这两个帖子在我搜索过程中排名靠前,而我花了半天时间才找到解决方法。

我无法告诉你为什么你的编译版本不起作用。使用Ubuntu软件源,你可以获得你想要的,并且会随系统的其他部分一起更新。
sudo apt install python3.9 python3.9-venv

这将为您提供pip3.9和创建虚拟环境的能力,类似于以下内容:
python3.9 -m venv $HOME/.venv/python3.9

谢谢你抽出时间来帮助我!现在一切都正常运作 :) - Usagi-Dev