首页 > 解决方案 > Windows:ModuleNotFoundError:没有名为“distutils”的模块

问题描述

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

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

apt-get install python3-distutils

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

但是,我在新 Windows (Windows-10-10.0.14393-SP0)、新 Python (3.7.2) 上遇到此错误,并且无法弄清楚 distutils 为何不高兴和/或如何安装 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 脚本时,它会抱怨。有什么想法吗?

标签: pythonpython-3.xsetuptoolsdistutils

解决方案


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

您可以通过打开项目所在的目录,然后搜索并删除“venv”文件夹来对其进行排序。

现在,当您重新运行项目时,IDE 会要求您设置 python 解释器。那时不要选择虚拟环境,而是选择使用预先存在的解释器选项。

-- 当你选择“创建虚拟环境”时,你的 IDE 会创建一个名为“virenv”的新目录,并将所有 python 文件从 Python/bin 复制到这个文件夹,然后从这里导入模块。因此,模块可能已经安装在本机 python 目录中,但可能没有导入到 virenv 目录,因此导致 ModuleNotFoundError。


推荐阅读