使用 python 3.7 创建 pipenv 虚拟环境时出错

error when creating a pipenv virtual environment with python 3.7

我的 OS 是 ubuntu 20.04,我的默认 python 是 3.8.2。我正在尝试使用 pipenv 和 python 3.7 创建一个虚拟环境。当我运行pipenv install --python 3.7:

时出现如下错误
Creating a virtualenv for this project…
Using /usr/bin/python3.7m (3.7.0) to create virtualenv…
⠋RuntimeError: failed to query /usr/bin/python3.7m with code 1 err: 'Traceback (most recent call last):\n  File "/usr/lib/python3/dist-packages/virtualenv/discovery/py_info.py", line 16, in <module>\n    from distutils.command.install import SCHEME_KEYS\nModuleNotFoundError: No module named \'distutils.command\'\n'
Error while trying to remove the /home/yuhao/.local/share/virtualenvs/electrode-mimic-j_E-dTLW env: 
No such file or directory

Virtualenv location: 
Warning: Your Pipfile requires python_version 3.7, but you are using None (/bin/python).
  $ pipenv check will surely fail.
Creating a virtualenv for this project…
Using /usr/bin/python3 (3.8.2) to create virtualenv…
⠙created virtual environment CPython3.8.2.final.0-64 in 162ms
  creator CPython3Posix(dest=/home/yuhao/.local/share/virtualenvs/electrode-mimic-j_E-dTLW, clear=False, global=False)
  seeder FromAppData(download=False, progress=latest, msgpack=latest, pytoml=latest, packaging=latest, setuptools=latest, contextlib2=latest, retrying=latest, pip=latest, pep517=latest, idna=latest, CacheControl=latest, appdirs=latest, requests=latest, pkg_resources=latest, webencodings=latest, distlib=latest, certifi=latest, distro=latest, ipaddr=latest, wheel=latest, six=latest, pyparsing=latest, urllib3=latest, chardet=latest, colorama=latest, lockfile=latest, html5lib=latest, via=copy, app_data_dir=/home/yuhao/.local/share/virtualenv/seed-app-data/v1.0.1.debian)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

Virtualenv location: /home/yuhao/.local/share/virtualenvs/electrode-mimic-j_E-dTLW
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
^C
Aborted!

为什么会这样?

你应该试试:

    pipenv lock --clear

对我有用。

您是否安装了 python3-distutils 软件包? 如果没有,您可以使用 :

安装它
 sudo apt-get install python3-distutils

如果您需要 python3 非系统默认版本,请指定 python 3 版本:

sudo apt-get install python3.X-distutils

示例:python3.8-distutils

我在使用 Python 3.9.1 时遇到了同样的错误,所以我使用

安装了 distutils
sudo apt-get install python3.9-distutils 

有效

对于python11:

sudo apt-get install python3.11-distutils