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