Windows: ModuleNotFoundError: No module named 'distutils'

Windows: ModuleNotFoundError: No module named 'distutils'

Python 3.7.2
Pip 18.1
setuptools 40.7.2
Windows-10-10.0.14393-SP0

我看到有人在 Linux/Ubuntu 上遇到 No module named 'distutils 问题(例如,here and here)。报告的解决方案是使用 apt-get 安装 distutils:

apt-get install python3-distutils

或者,人们很久以前就遇到过这个问题(例如,here)。

但是,我在新 Windows (Windows-10-10.0.14393-SP0)、新 Python (3.7.2) 上遇到此错误,无法计算为什么 distutils 不高兴 and/or 如何安装 distutils。

我可以在 Python 中导入 distutils,所以我假设它已安装。但是setuptools不开心。

File "site-packages\setuptools\__init__.py", line 6, in <module>
ModuleNotFoundError: No module named 'distutils'

直接来自 Python,它不会抱怨 distutils。

Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import distutils.core
>>> import setuptools
>>>

但是,当我尝试 运行 一个 Python 脚本时,它会抱怨。有什么想法吗?

如果您在创建项目时创建了新的虚拟环境,则可能会出现此错误。

您可以通过打开项目所在的目录,然后搜索并删除"venv"文件夹来解决这个问题。

现在,当您re-run 项目时,IDE 会要求您设置python 解释器。那时不是 select 虚拟环境,而是选择使用 pre-existing 解释器选项。

-- 当你 select "create virtual environment" 时会发生什么是你的 IDE 创建一个名为 "virenv" 的新目录并将所有 python 文件从 Python/bin 复制到这个文件夹,然后从这里导入模块。因此,该模块可能已经安装在本机 python 目录中,但可能未导入到 virenv 目录,因此导致 ModuleNotFoundError。

好的,我知道,我的解决方案可能是最糟糕的,但它对我有用,只需将我虚拟环境中同一位置的 distutils 文件夹复制到 distutils,问题就解决了