没有名为 distutils 的模块...但已安装 distutils?

问题描述 投票:0回答:6

我想升级我的 python 版本(在本例中升级到 3.10),因此在安装 python3.10 后,我继续尝试添加一些我使用的模块,例如opencv ,遇到:

jeremy@jeremy-Blade:~$ python3.10 -m pip install opencv-python 
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3/dist-packages/pip/__main__.py", line 16, in <module>
    from pip._internal.cli.main import main as _main  # isort:skip # noqa
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 10, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/cmdoptions.py", line 19, in <module>
    from distutils.util import strtobool
ModuleNotFoundError: No module named 'distutils.util'

jeremy@jeremy-Blade:~$ sudo apt-get install python3-distutils
[sudo] password for jeremy: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-distutils is already the newest version (3.8.10-0ubuntu1~20.04).
...
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

由于 distutils 似乎已经安装,我不知道如何继续。

python python-3.x distutils
6个回答
39
投票

看起来 distutils 有版本控制,所以之后

jeremy@jeremy-Blade:~$ sudo apt-get install python3.10-distutils 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
...
Setting up python3.10-lib2to3 (3.10.0-1+focal1) ...
Setting up python3.10-distutils (3.10.0-1+focal1) ...

jeremy@jeremy-Blade:~$ python3.10 -m pip install opencv-python 

看来可以继续了。


10
投票

这为我解决了问题

sudo apt-get install --reinstall python3.7-distutils

您也可以将 3.7 替换为您的 python 版本


4
投票
sudo apt-get install python3.9-distutils

这解决了我使用Python3.9的问题


1
投票

distutils
软件包已在
python version 3.12

中移除

它在 Python 3.10 中被 PEP 632“弃用 distutils 模块”弃用。对于仍在使用 distutils 并且无法更新为其他内容的项目,可以安装 setuptools 项目:它仍然提供 distutils。

https://docs.python.org/3.12/whatsnew/3.12.html


0
投票

这解决了我的问题

sudo apt-get install python3.10-distutils

我使用的是python 3.10


0
投票

为您的 python 版本安装

distutils

!sudo apt-get install python<your-python-version>-distutils

以3.8版本为例安装

sudo apt-get install python3.8-distutils

规范:在Python 3.10和3.11中,distutils将被正式标记为已弃用。所有已知问题都将在此时关闭。

注意:您仍然可以在

distutisl
3.10
中使用带有警告的
3.11
,并且出现的任何问题都不会得到解决。但是,导入 distutils 的代码将不再在 Python 3.12 中工作。

了解更多信息:迁移建议

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