升级到3.8后缺少distutils.util

时间:2020-05-24 17:41:09

标签: python-3.x pip aws-sam-cli

我刚升级到Pop OS(Ubuntu)20.04,将Python 3.7升级到了3.8。现在,当我从AWS SAM CLI运行sam时,在下面出现此错误。在线找到的解决方案都与确保安装python3-distutils有关。我已验证已安装python3-disutils/usr/lib/python3.8/distutils看起来不错,只是由于某种原因没有被捡起。

我注意到的一件事是,在下面的追溯中,它使用的是系统范围的pip,而我的.local下安装了更高版本的pip。我不知道这两个症状是否相关,但是好像我在某处缺少一些配置,因此3.8或用户空间中的任何内容都没有被发现。

Build Failed
Error: PythonPipBuilder:ResolveDependencies - Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/pip/_internal/main.py", line 14, in main
    from pip._internal.utils.entrypoints import _wrapper
  File "/usr/lib/python3/dist-packages/pip/_internal/utils/entrypoints.py", line 3, in <module>
    from pip._internal.cli.main import main
  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'

1 个答案:

答案 0 :(得分:0)

我在Debian Bullseye(或更确切地说是Bullseye / Buster混合)上遇到了同样的问题。

软件包python3-distutils(3.8.6)包含适用于Python 3.8和3.9(!)的模块。 适用于Python 3.7的旧软件包(3.7.3)。您必须选择。

我的解决方法只是复制模块。

mkdir -p /usr/lib/python3.7/distutils
cp -a /usr/lib/python3.8/distutils/* /usr/lib/python3.7/distutils/