I am having major trouble with ModuleNotFoundError: No module named 'distutils'

Resolved 44 packages in 339ms

error: Failed to download distributions

Caused by: Failed to fetch wheel: numpy==1.24.3

Caused by: Failed to build: numpy==1.24.3

Caused by: Build backend failed to determine extra requires with build_wheel() with exit status: 1

β€” stdout:

β€” stderr:

Traceback (most recent call last):

File β€œβ€, line 8, in

File β€œ/home/adminuser/.cache/uv/.tmpl0kiA7/.venv/lib/python3.12/site-packages/setuptools/init.py”, line 10, in

import distutils.core

ModuleNotFoundError: No module named β€˜distutils’


Checking if Streamlit is installed

────────────────────────────────────────────────────────────────────────────────────────

──────────────────────────────────────── pip ───────────────────────────────────────────

Using standard pip install.

Collecting pandas==2.0.3 (from -r /mount/src/consumer-forensics/requirements.txt (line 1))

Downloading pandas-2.0.3.tar.gz (5.3 MB)

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.3/5.3 MB 77.7 MB/s eta 0:00:00[2024-08-21 18:36:38.741327] 

Installing build dependencies: started

Installing build dependencies: finished with status β€˜done’

Getting requirements to build wheel: started

Getting requirements to build wheel: still running…

Getting requirements to build wheel: finished with status β€˜done’

Preparing metadata (pyproject.toml): started

Preparing metadata (pyproject.toml): finished with status β€˜done’

Collecting numpy==1.24.3 (from -r /mount/src/consumer-forensics/requirements.txt (line 2))

Downloading numpy-1.24.3.tar.gz (10.9 MB)

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.9/10.9 MB 144.8 MB/s eta 0:00:00[2024-08-21 18:38:39.017206] 

Installing build dependencies: started

Installing build dependencies: finished with status β€˜done’

Getting requirements to build wheel: started

Getting requirements to build wheel: finished with status β€˜done’

ERROR: Exception:

Traceback (most recent call last):

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/cli/base_command.py”, line 180, in exc_logging_wrapper

status = run_func(*args)

         ^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/cli/req_command.py”, line 245, in wrapper

return func(self, options, args)

       ^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/commands/install.py”, line 377, in run

requirement_set = resolver.resolve(

                  ^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py”, line 95, in resolve

result = self._result = resolver.resolve(

                        ^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py”, line 546, in resolve

state = resolution.resolve(requirements, max_rounds=max_rounds)

        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py”, line 397, in resolve

self._add_to_criteria(self.state.criteria, r, parent=None)

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py”, line 173, in _add_to_criteria

if not criterion.candidates:

       ^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py”, line 156, in bool

return bool(self._sequence)

       ^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py”, line 155, in bool

return any(self)

       ^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py”, line 143, in

return (c for c in iterator if id(c) not in self._incompatible_ids)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py”, line 47, in _iter_built

candidate = func()

            ^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py”, line 182, in _make_candidate_from_link

base: Optional[BaseCandidate] = self._make_base_candidate_from_link(

                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py”, line 228, in _make_base_candidate_from_link

self._link_candidate_cache[link] = LinkCandidate(

                                   ^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py”, line 290, in init

super().__init__(

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py”, line 156, in init

self.dist = self._prepare()

            ^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py”, line 222, in _prepare

dist = self._prepare_distribution()

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py”, line 301, in _prepare_distribution

return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py”, line 525, in prepare_linked_requirement

return self._prepare_linked_requirement(req, parallel_builds)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py”, line 640, in _prepare_linked_requirement

dist = _get_prepared_distribution(

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py”, line 71, in _get_prepared_distribution

abstract_dist.prepare_distribution_metadata(

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py”, line 54, in prepare_distribution_metadata

self._install_build_reqs(finder)

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py”, line 124, in _install_build_reqs

build_reqs = self._get_build_requires_wheel()

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py”, line 101, in _get_build_requires_wheel

return backend.get_requires_for_build_wheel()

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_internal/utils/misc.py”, line 745, in get_requires_for_build_wheel

return super().get_requires_for_build_wheel(config_settings=cs)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py”, line 166, in get_requires_for_build_wheel

return self._call_hook('get_requires_for_build_wheel', {

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py”, line 321, in _call_hook

raise BackendUnavailable(data.get('traceback', ''))

pip._vendor.pyproject_hooks._impl.BackendUnavailable: Traceback (most recent call last):

File β€œ/home/adminuser/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py”, line 77, in _build_backend

obj = import_module(mod_path)

      ^^^^^^^^^^^^^^^^^^^^^^^

File β€œ/usr/local/lib/python3.12/importlib/init.py”, line 90, in import_module

return _bootstrap._gcd_import(name[level:], package, level)

       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File β€œβ€, line 1387, in _gcd_import

File β€œβ€, line 1360, in _find_and_load

File β€œβ€, line 1310, in _find_and_load_unlocked

File β€œβ€, line 488, in _call_with_frames_removed

File β€œβ€, line 1387, in _gcd_import

File β€œβ€, line 1360, in _find_and_load

File β€œβ€, line 1331, in _find_and_load_unlocked

File β€œβ€, line 935, in _load_unlocked

File β€œβ€, line 995, in exec_module

File β€œβ€, line 488, in _call_with_frames_removed

File β€œ/tmp/pip-build-env-ymwxz71f/overlay/lib/python3.12/site-packages/setuptools/init.py”, line 10, in

import distutils.core

ModuleNotFoundError: No module named β€˜distutils’

  • python 3.12
  • streamlit 1.37.0
  • Thanks for your help with this

Is there any reason why you want numpy==1.24.3? You need python<3.12 to install such an old version.

1 Like

Thank you I am a novice self taught so your guidance means a lot. I used that numpy version because it kept failing, again a novice LMAO. based on your guidance i should change my python version to 3.12 or later to confirm? Please and thank you so much.

I don’t understand. What kept failing and what made you think using numpy==1.24.3 would fix it?

Anyway, if you really want numpy==1.24.3 you need a python version lesser than 3.12.

Thank you I really appreciate your guidance and have learned a lot on the side in creating this question. I also appreciate your quick reply it means a lot great community here!

I recently faced an issue with dependency clashes, and after trying several solutions without success, I found that the best approach was to avoid specifying exact versions in requirements.txt . Instead, simply listing the package names worked well for me

streamlit
pandas
numpy
seaborn
matplotlib
scikit-learn
fuzzywuzzy
Pillow

Interestingly, I noticed that when I placed streamlit after scikit-learn , I encountered issues like distutils errors. However, moving streamlit to the top of the list and refreshing resolved the problem. It could be coincidental, but I’m curious if others have experienced something similar.

Has anyone else noticed this dependency order affecting package installation?

1 Like