- Вопрос или проблема
- Проблема отсутствующей библиотеки при установке Python с Pyenv
- Кратко:
- Результат
- Ответ или решение
- Не удается установить Python 3.8.13 с помощью pyenv и Homebrew на Ubuntu 22.04: Решение проблемы
- Проблема: Отсутствие библиотек
- Решение: Установка недостающих библиотек
- Повторная установка Python с помощью pyenv
- Заключение
Вопрос или проблема
Я новый ученик 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 часто используется терминал для установки и настройки программ, и знание команд может значительно упростить вашу работу.