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 setuptoolspython -m pip install --user virtualenvvirtualenv 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 шт):
На основе информации из этой статьи: 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 (и другие нужные зависимости), должно успешно установиться:
