Windows:ModuleNotFoundError:没有名为“distutils”的模块

问题描述 投票:0回答:3
Python 3.7.2
Pip 18.1
setuptools 40.7.2
Windows-10-10.0.14393-SP0

我见过有人在 Linux/Ubuntu 上遇到

No module named 'distutils
问题(例如,herehere)。报告的解决方案是使用 apt-get 安装 distutils:

apt-get install python3-distutils

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

但是,我在新 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 脚本时,它会抱怨。有什么想法吗?

python python-3.x setuptools distutils
3个回答
5
投票

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

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

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

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


2
投票

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


0
投票

激活您的 venv 并输入:

python -m ensurepip --upgrade

然后

python -m pip install --upgrade setuptools

之后,检查

python -m distutils.core --help

您应该看到 distutils 的帮助文本,这意味着它现在已安装并可以使用。

© www.soinside.com 2019 - 2024. All rights reserved.