ModuleNotFoundError:没有名为“pip._vendor.six”的模块

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

答案1

我在 Ubuntu 20.04 LTS 上使用 pipenv 运行 Django 应用程序时遇到ModuleNotFoundError: No module named 'pip._vendor.six'错误。解决方案是删除一些旧的 virtualenv 版本文件,之后rm -rf ~/.local/share/virtualenvs软件包安装开始工作,我就可以运行该应用程序了。可能值得一试。

在另一个 SO 线程上给出了更详细的答案https://stackoverflow.com/a/71542588/1669514,但也想把它放在这里,因为在我的搜索中,这两个问题的排名都很高,我花了半天时间才弄清楚。

答案2

我无法告诉你为什么你编译的版本不起作用。使用 Ubuntu repo,你可以得到你想要的东西,并将与系统的其余部分一起更新:

sudo apt install python3.9 python3.9-venv

这将使您pip3.9能够创建一个虚拟环境,如下所示:

python3.9 -m venv $HOME/.venv/python3.9

相关内容