AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?

Пытаюсь установить selenium в новый проект, который клонировал с github'a. При попытке воспользоваться встроенным Python Packages в PyCharm получаю следующее:

AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?

ОС: Ubuntu 22
Версия Python: 3.12.1

На SO есть уже такой вопрос, но там у автора стоит Windows 11 и, несмотря на наличие ответов для linux, мне они почему-то не помогли. Я пробовал:

  • pip install --upgrade setuptools
  • python -m pip install --user virtualenv
  • virtualenv your_virtual_environment --python=python3.12 (с последующей активацией)
  • python3.12 -m pip install --upgrade setuptools
    И даже
  • sudo apt install python3.12-dev

Я не особо разбираюсь в linux, но я заметил, что при переходе на версию 3.10 (та, что стояла изначально в системе) всё корректно работает. Но мне принципиально установить версию 3.12.
Заранее спасибо

UPD:

Полный текст ошибки:

Defaulting to user installation because normal site-packages is not writeable

ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 165, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 205, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 285, in run
    session = self.get_default_session(options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 75, in get_default_session
    self._session = self.enter_context(self._build_session(options))
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 89, in _build_session
    session = PipSession(
              ^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/network/session.py", line 282, in __init__
    self.headers["User-Agent"] = user_agent()
                                 ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/network/session.py", line 157, in user_agent
    setuptools_dist = get_default_environment().get_distribution("setuptools")
                      ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pip/_internal/metadata/__init__.py", line 24, in get_default_environment
    from .pkg_resources import Environment
  File "/usr/lib/python3/dist-packages/pip/_internal/metadata/pkg_resources.py", line 9, in <module>
    from pip._vendor import pkg_resources
  File "/usr/lib/python3/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2164, in <module>
    register_finder(pkgutil.ImpImporter, find_on_path)
                    ^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?

UPD2:

Установка пакетов на 3.12 корректно работает для случаев, когда я создаю новые проекты на этом ПК, но если клонирую с гита, получаю вышеописанную проблему


Ответы (1 шт):

Автор решения: insolor

На основе информации из этой статьи: How to Install Python 3.12 on Linux Mint 21 or 20 (должно работать и на Ubuntu)

Добавляете репозиторий deadsnakes:

sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update

Ставьте полный пакет python3.12-full:

sudo apt install python3.12-full

Заменять системный интерпретатор не нужно, вы так с большой вероятностью сломаете себе систему.

Далее в проекте создаете виртуальное окружение:

python3.12 -m venv .venv

Чтобы проверить, что все работает, активируете окружение

source .venv/bin/activate

Проверяете версию Python в виртуальном окружении:

> python -V
Python 3.12.1

Дальше открываете проект в PyCharm, он должен автоматически подхватить интерпретатор из виртуального окружения. Если не подхватится - нужно выбрать интерпретатор из виртуального окружения в настройках проекта.

Через настройки или панель Python Packages добавляете selenium (и другие нужные зависимости), должно успешно установиться:

введите сюда описание изображения

→ Ссылка