web-dev-qa-db-fra.com

MODULENOTFOUNDERROR: Aucun module nommé 'Distutils.util'

après la mise à jour à Ubuntu 20.04 chaque fois que je tape "PIP INSTALL (UN PACKAGE)" ou "PIP -VERSION", il dit

 adam@daryy:~$ pip3

Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 5, in <module>
    from pip._internal.cli.main import main
  File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/main.py", line 10, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/cmdoptions.py", line 19, in <module>
    from distutils.util import strtobool
ModuleNotFoundError: No module named 'distutils.util'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 5, in <module>
    from pip._internal.cli.main import main
  File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/main.py", line 10, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/local/lib/python3.7/dist-packages/pip/_internal/cli/cmdoptions.py", line 19, in <module>
    from distutils.util import strtobool
ModuleNotFoundError: No module named 'distutils.util'
``

even when i normally type "pip3" or "pip"
31
Rock Life

Je suis venu ici pour une réponse et je n'ai pas trouvé, mais je l'ai réparé moi-même.

Il y a quelque temps, j'ai joué avec python Version en utilisant Update-Alternatives, je crois aussi que je suis édité manuellement des scripts et maintenant, après jour de 16,04 à 20,04, j'ai eu le même problème que vous. Je Je ne suis pas sûr si mon correctif est "approprié", mais cela fonctionne pour moi:

~$ which pip3
/home/patryk/.local/bin/pip3
~$ vim /home/patryk/.local/bin/pip3

J'ai changé la première ligne de:

#!/usr/bin/python3.7

à:

#!/usr/bin/python3

Aidé dans mon cas.

1
Patryk

Je ne sais pas si cela vous aidera, mais pour moi, j'essayais d'installer un paquet en utilisant:

$ pip3 install <package>

Et cela a donné la même erreur, cependant quand j'ai utilisé sudo:

$ Sudo pip3 install <package>

il a réussi. Je ne peux que imaginer que les dist-utils sont installés pour l'utilisateur root uniquement.

0
PJeffes

Assurez-vous Installez la version appropriée basée sur python Version, par exemple pour obtenir toutes les versions disponibles (supposer à l'aide de apt gestionnaire de packages):

$ Sudo apt-cache search distutils
python-setuptools - Python Distutils Enhancements
python-setuptools-doc - Python Distutils Enhancements (documentation)
python3-d2to1 - Python3 support for distutils2-like setup.cfg files as package metadata
python3-setuptools - Python3 Distutils Enhancements
pypy-setuptools - PyPy Distutils Enhancements
python-d2to1 - Python support for distutils2-like setup.cfg files as package metadata
python-distlib - low-level components of python distutils2/packaging
python-distutils-extra - enhancements to the Python build system
python-stsci.distutils - Python packaging utilities for STScI's packages
python3-distlib - low-level components of python distutils2/packaging
python3-distutils-extra - enhancements to the Python3 build system
python3-stdeb - Python to Debian source package conversion plugins for distutils
python3-stsci.distutils - Python3 packaging utilities for STScI's packages
python3.7-distutils - distutils package for Python (version 3.7)
python3.8-distutils - distutils package for Python (version 3.8)
python3.9-distutils - distutils package for Python (version 3.9)
xiaobai@a38afc615581:~$

Tu peux voir python3.7-distutils, python3.8-distutils, et python3.9-distutils répertorié dans la sortie ci-dessus, peut-on l'installer en spécifiant la version liée à votre souhaité python version, par exemple, j'ai python3.8 et je veux faire:

$ Sudo apt-get install python3.8-distutils

Ensuite, je dirais PIP avec ça python version ( Assurez-vous d'exécuter echo $PYTHONPATH First Pour confirmer Python3.8 (My python Version) dans le chemin sinon PIP l'installera dans un chemin incorrect), E.G.:

$ python3.8 -m pip install requests
0
Fruit