Не удается установить Python 3.8.13 с помощью pyenv и Homebrew.

Вопрос или проблема

Я новый ученик Linux. Когда я пытаюсь установить python через pyenv, появляется следующая ошибка:

ОС: Ubuntu 22.04

kev@kev-Modern-15-A5M:~$ pyenv install 3.8.13
Скачивание Python-3.8.13.tar.xz...
-> https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tar.xz
Установка Python-3.8.13...
ПРЕДУПРЕЖДЕНИЕ: Расширение bz2 для Python не было скомпилировано. Не хватает библиотеки bzip2?
ПРЕДУПРЕЖДЕНИЕ: Расширение readline для Python не было скомпилировано. Не хватает библиотеки GNU readline?
ОШИБКА: Расширение ssl для Python не было скомпилировано. Не хватает библиотеки OpenSSL?

Пожалуйста, обратитесь к странице Wiki, чтобы решить проблему.
https://github.com/pyenv/pyenv/wiki/Common-build-problems

СБОРКА НЕ УДАЛАСЬ (Ubuntu 22.04 с использованием python-build 20180424)

Проверьте или очистите рабочее дерево по адресу /tmp/python-build.20220629160539.201051
Результаты записаны в /tmp/python-build.20220629160539.201051.log

Последние 10 строк лога:
     ./python -E -m ensurepip \
        $ensurepip --root=/ ; \
fi
Ищем в ссылках: /tmp/tmppnia5_0_
Обработка /tmp/tmppnia5_0_/setuptools-56.0.0-py3-none-any.whl
Обработка /tmp/tmppnia5_0_/pip-22.0.4-py3-none-any.whl
Установка собранных пакетов: setuptools, pip
  ПРЕДУПРЕЖДЕНИЕ: Скрипты pip3 и pip3.8 установлены в '/home/kev/.pyenv/versions/3.8.13/bin', который не входит в PATH.
  Рассмотрите возможность добавления этой директории в PATH или, если вы предпочитаете подавить это предупреждение, используйте --no-warn-script-location.
Успешно установлены pip-22.0.4 setuptools-56.0.0

Проблема вызвана Homebrew, просто удалите и установите пакеты вручную без Homebrew.

На Ubuntu 22 LTS

Проблема отсутствующей библиотеки при установке Python с Pyenv

Перед исправлением:

$> pyenv install 3.11.0

Результат команды:

pyenv: /home/user/.pyenv/versions/3.11.0 уже существует
продолжить установку? (y/N) y
Скачивание Python-3.11.0.tar.xz...
-> https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz

Установка Python-3.11.0...
ПРЕДУПРЕЖДЕНИЕ: Расширение bz2 для Python не было скомпилировано. Не хватает библиотеки bzip2?
ПРЕДУПРЕЖДЕНИЕ: Расширение readline для Python не было скомпилировано. Не хватает библиотеки GNU readline?
ПРЕДУПРЕЖДЕНИЕ: Расширение lzma для Python не было скомпилировано. Не хватает библиотеки lzma?

Кратко:

Рецепт для исправления:

sudo apt-get install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev

Результат

После исправления:

$> pyenv install 3.11.0

Результат команды:

pyenv: /home/user/.pyenv/versions/3.11.0 уже существует
продолжить установку? (y/N) y
Скачивание Python-3.11.0.tar.xz...
-> https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz
Установка Python-3.11.0...
Установлен Python-3.11.0 в /home/user/.pyenv/versions/3.11.0

Ответ или решение

Не удается установить Python 3.8.13 с помощью pyenv и Homebrew на Ubuntu 22.04: Решение проблемы

Если вы столкнулись с проблемами при установке Python 3.8.13 через pyenv на Ubuntu 22.04, это может быть связано с отсутствием необходимых библиотек для компиляции. Данная ситуация особенно распространена среди новичков в экосистеме Linux, учитывая многообразие зависимостей, требуемых для успешной установки.

Проблема: Отсутствие библиотек

При попытке установить Python 3.8.13 через команду:

pyenv install 3.8.13

вы можете увидеть сообщения о том, что отсутствуют необходимые модули, такие как bz2, readline и ssl:

WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Эти предупреждения указывают на то, что определенные библиотеки, ответственные за поддержку данных модулей, не установлены на вашей системе.

Решение: Установка недостающих библиотек

Для успешной установки Python с помощью pyenv необходимо установить несколько библиотек, которые требуются для компиляции его расширений. Выполните следующую команду в терминале:

sudo apt-get install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev

Эти пакеты включают в себя:

  • build-essential: Набор инструментов для компиляции программного обеспечения.
  • zlib1g-dev: Библиотеки, необходимые для работы с gzip и zlib.
  • libffi-dev: Библиотеки для использования Foreign Function Interface, необходимые для многих библиотек.
  • libssl-dev: Библиотеки для поддержки SSL/TLS.
  • libbz2-dev: Поддержка для работы с bzip2.
  • libreadline-dev: Библиотеки для интерактивного ввода текста с поддержкой редактирования.
  • libsqlite3-dev: Библиотеки для работы с SQLite.
  • liblzma-dev: Библиотеки для работы с lzma.

Повторная установка Python с помощью pyenv

После установки всех необходимых библиотек попробуйте снова выполнить команду:

pyenv install 3.8.13

Если все прошло успешно, вы должны увидеть сообщение, подтверждающее установку Python:

Installed Python 3.8.13 to /home/kev/.pyenv/versions/3.8.13

Заключение

Установка Python на Ubuntu может показаться сложной задачей для новичков, но, следуя вышеуказанным шагам и устанавливая необходимые зависимости, вы сможете успешно настроить окружение. Если у вас возникли ошибки, то можно обратиться к официальной документации pyenv, где представлены дополнительные способы решения подобных проблем. Не забывайте, что в Linux часто используется терминал для установки и настройки программ, и знание команд может значительно упростить вашу работу.

Оцените материал
Добавить комментарий

Капча загружается...