paul-gauthier / aider

aider is AI pair programming in your terminal
https://aider.chat/
Apache License 2.0
19.08k stars 1.76k forks source link

Unable to install through pip or python #1689

Open daedmod opened 15 hours ago

daedmod commented 15 hours ago

Issue

I get this each time I try installing it through VSCode terminal:

Collecting aider-chat
  Using cached aider_chat-0.16.0-py3-none-any.whl.metadata (11 kB)
Collecting aiohttp==3.8.4 (from aider-chat)
  Using cached aiohttp-3.8.4.tar.gz (7.3 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting aiosignal==1.3.1 (from aider-chat)
  Using cached aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
Collecting async-timeout==4.0.2 (from aider-chat)
  Using cached async_timeout-4.0.2-py3-none-any.whl.metadata (4.2 kB)
Collecting attrs==23.1.0 (from aider-chat)
  Using cached attrs-23.1.0-py3-none-any.whl.metadata (11 kB)
Collecting certifi==2023.5.7 (from aider-chat)
  Using cached certifi-2023.5.7-py3-none-any.whl.metadata (2.2 kB)
Collecting charset-normalizer==3.1.0 (from aider-chat)
  Using cached charset_normalizer-3.1.0-py3-none-any.whl.metadata (30 kB)
Collecting frozenlist==1.3.3 (from aider-chat)
  Using cached frozenlist-1.3.3.tar.gz (66 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting gitdb==4.0.10 (from aider-chat)
  Using cached gitdb-4.0.10-py3-none-any.whl.metadata (1.1 kB)
Collecting GitPython==3.1.31 (from aider-chat)
  Using cached GitPython-3.1.31-py3-none-any.whl.metadata (1.3 kB)
Collecting idna==3.4 (from aider-chat)
  Using cached idna-3.4-py3-none-any.whl.metadata (9.8 kB)
Collecting markdown-it-py==2.2.0 (from aider-chat)
  Using cached markdown_it_py-2.2.0-py3-none-any.whl.metadata (6.8 kB)
Collecting mdurl==0.1.2 (from aider-chat)
  Using cached mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Collecting multidict==6.0.4 (from aider-chat)
  Using cached multidict-6.0.4.tar.gz (51 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting openai==0.27.6 (from aider-chat)
  Using cached openai-0.27.6-py3-none-any.whl.metadata (13 kB)
Collecting prompt-toolkit==3.0.38 (from aider-chat)
  Using cached prompt_toolkit-3.0.38-py3-none-any.whl.metadata (7.0 kB)
Collecting Pygments==2.15.1 (from aider-chat)
  Using cached Pygments-2.15.1-py3-none-any.whl.metadata (2.5 kB)
Collecting requests==2.30.0 (from aider-chat)
  Using cached requests-2.30.0-py3-none-any.whl.metadata (4.6 kB)
Collecting rich==13.3.5 (from aider-chat)
  Using cached rich-13.3.5-py3-none-any.whl.metadata (18 kB)
Collecting smmap==5.0.0 (from aider-chat)
  Using cached smmap-5.0.0-py3-none-any.whl.metadata (4.2 kB)
Collecting tqdm==4.65.0 (from aider-chat)
  Using cached tqdm-4.65.0-py3-none-any.whl.metadata (56 kB)
Collecting urllib3==2.0.2 (from aider-chat)
  Using cached urllib3-2.0.2-py3-none-any.whl.metadata (6.6 kB)
Collecting wcwidth==0.2.6 (from aider-chat)
  Using cached wcwidth-0.2.6-py2.py3-none-any.whl.metadata (11 kB)
Collecting yarl==1.9.2 (from aider-chat)
  Using cached yarl-1.9.2.tar.gz (184 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting pytest==7.3.1 (from aider-chat)
  Using cached pytest-7.3.1-py3-none-any.whl.metadata (7.9 kB)
Collecting tiktoken==0.4.0 (from aider-chat)
  Using cached tiktoken-0.4.0.tar.gz (25 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting configargparse (from aider-chat)
  Using cached ConfigArgParse-1.7-py3-none-any.whl.metadata (23 kB)
Collecting PyYAML (from aider-chat)
  Using cached PyYAML-6.0.2-cp313-cp313-win_amd64.whl.metadata (2.1 kB)
Collecting backoff==2.2.1 (from aider-chat)
  Using cached backoff-2.2.1-py3-none-any.whl.metadata (14 kB)
Collecting networkx==3.1 (from aider-chat)
  Using cached networkx-3.1-py3-none-any.whl.metadata (5.3 kB)
Collecting diskcache==5.6.1 (from aider-chat)
  Using cached diskcache-5.6.1-py3-none-any.whl.metadata (20 kB)
Collecting numpy==1.24.3 (from aider-chat)
  Using cached numpy-1.24.3.tar.gz (10.9 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\cli\base_command.py", line 105, in _run_wrapper
    status = _inner_run()
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\cli\base_command.py", line 96, in _inner_run
    return self.run(options, args)
           ~~~~~~~~^^^^^^^^^^^^^^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\cli\req_command.py", line 67, in wrapper
    return func(self, options, args)
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\commands\install.py", line 379, in run
    requirement_set = resolver.resolve(
        reqs, check_supported_wheels=not options.target_dir
    )
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 95, in resolve
    result = self._result = resolver.resolve(
                            ~~~~~~~~~~~~~~~~^
        collected.requirements, max_rounds=limit_how_complex_resolution_can_be
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "C:\Program Files\Python313\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 427, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
  File "C:\Program Files\Python313\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 239, in _attempt_to_pin_criterion
    criteria = self._get_updated_criteria(candidate)
  File "C:\Program Files\Python313\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 230, in _get_updated_criteria
    self._add_to_criteria(criteria, requirement, parent=candidate)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 173, in _add_to_criteria
    if not criterion.candidates:
           ^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_vendor\resolvelib\structs.py", line 156, in __bool__
    return bool(self._sequence)
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 174, in __bool__
    return any(self)
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 162, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
                       ^^^^^^^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 53, in _iter_built
    candidate = func()
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 186, in _make_candidate_from_link
    base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        link, template, name, version
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 232, in _make_base_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
                                       ~~~~~~~~~~~~~^
        link,
        ^^^^^
    ...<3 lines>...
        version=version,
        ^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 303, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        link=link,
        ^^^^^^^^^^
    ...<4 lines>...
        version=version,
        ^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 158, in __init__
    self.dist = self._prepare()
                ~~~~~~~~~~~~~^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 235, in _prepare
    dist = self._prepare_distribution()
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 314, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\operations\prepare.py", line 527, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\operations\prepare.py", line 642, in _prepare_linked_requirement
    dist = _get_prepared_distribution(
        req,
    ...<3 lines>...
        self.check_build_deps,
    )
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\operations\prepare.py", line 72, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        finder, build_isolation, check_build_deps
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\distributions\sdist.py", line 56, in prepare_distribution_metadata
    self._install_build_reqs(finder)
    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\distributions\sdist.py", line 126, in _install_build_reqs
    build_reqs = self._get_build_requires_wheel()
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\distributions\sdist.py", line 103, in _get_build_requires_wheel
    return backend.get_requires_for_build_wheel()
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "C:\Program Files\Python313\Lib\site-packages\pip\_internal\utils\misc.py", line 706, in get_requires_for_build_wheel
    return super().get_requires_for_build_wheel(config_settings=cs)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python313\Lib\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', {
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        'config_settings': config_settings
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    })
    ^^
  File "C:\Program Files\Python313\Lib\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 "C:\Program Files\Python313\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 77, in _build_backend
    obj = import_module(mod_path)
  File "C:\Program Files\Python313\Lib\importlib\__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 1022, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "C:\Users\Admin\AppData\Local\Temp\pip-build-env-iwa0omke\overlay\Lib\site-packages\setuptools\__init__.py", line 10, in <module>
    import distutils.core
ModuleNotFoundError: No module named 'distutils'

Version and model info

No response

fry69 commented 15 hours ago

Thank you for filing this issue.

Is this a Python 3.13 installation? aider only supports Python 3.9-3.12 currently.

daedmod commented 14 hours ago

@fry69 thanks, I was just about to downgrade to 3.11, I fixed the earlier error by installing setuptools, but then some other errors appeared, so I figured it's compatibility issues most likely