Ошибка unable to locate package python появляется в Termux сразу после ввода команды pkg install python, когда менеджер пакетов не находит такой пакет в подключённых репозиториях. Самое распространённое следствие — ни один скрипт на Python не запускается, а любые попытки установить pip или библиотеки заканчиваются той же ошибкой.
Хорошая новость: пакет python существует в официальных репозиториях Termux, и ошибка почти всегда связана не с его отсутствием, а с состоянием локальной базы пакетов или источников обновлений. Ниже разберём причины и безопасные способы решения, не требующие переустановки приложения.
Почему Termux не находит пакет python
Менеджер пакетов pkg (обёртка над apt) ищет пакеты в локальном индексе, который загружается с серверов репозиториев. Если индекс устарел, повреждён или репозиторий недоступен, поиск завершается неудачей даже для существующих пакетов. Именно это и происходит при ошибке unable to locate package.
Основные причины выглядят так:
- 🔧 Локальный индекс пакетов не обновлялся — команда
pkg updateдавно не выполнялась или завершилась с ошибкой. - 🌐 Нет подключения к интернету либо сеть блокирует доступ к зеркалам репозиториев.
- 📦 Установлена устаревшая версия Termux из Google Play, чьи репозитории давно не поддерживаются.
- ⌨️ Опечатка в имени пакета или лишние символы при вводе команды.
- 🗂️ Повреждён список источников в файле
sources.listпосле ручного редактирования.
⚠️ Внимание: версия Termux из Google Play Store больше не обновляется и использует отключённые репозитории. Если приложение установлено оттуда, большинство команд установки пакетов будут выдавать ошибки независимо от ваших действий. Актуальные сборки распространяются через F-Droid и GitHub-репозиторий проекта.
Шаг 1. Обновите индекс пакетов
Первое действие при любой ошибке «пакет не найден» — принудительное обновление списка доступных пакетов. Для этого выполните:
pkg update && pkg upgrade
Во время выполнения команда может задать вопросы о замене конфигурационных файлов — обычно безопасно отвечать Y или оставлять вариант по умолчанию, нажимая Enter. После завершения повторите установку:
pkg install python
Если обновление прошло без ошибок, а пакет всё равно не находится, проблема глубже — переходите к следующим шагам. Если же pkg update сам завершился с ошибками соединения, сначала проверьте интернет и источники репозиториев.
☑️ Базовая диагностика перед установкой python
Шаг 2. Проверьте и смените репозиторий
Termux позволяет выбрать зеркало репозитория вручную — это помогает, когда используемый сервер недоступен из вашей сети или региона. Запустите встроенную утилиту выбора:
termux-change-repo
Откроется псевдографическое меню: пробелом отмечается репозиторий, стрелками выбирается зеркало, Enter подтверждает выбор. Разумная стратегия — выбрать другое зеркало официального репозитория, затем снова выполнить pkg update. Точный список доступных зеркал может меняться, поэтому ориентируйтесь на то, что предлагает сама утилита.
Дополнительно можно проверить содержимое списка источников командой cat $PREFIX/etc/apt/sources.list. Там должна быть строка с актуальным адресом репозитория Termux. Если файл пуст, содержит непонятные адреса или вы недавно редактировали его вручную, возможная причина ошибки — именно здесь.
Шаг 3. Убедитесь, что Termux актуален
Если обновление индекса и смена зеркала не помогли, проверьте, откуда установлен сам Termux. Старая сборка из Google Play обращается к репозиториям, которые проект больше не обслуживает, и никакие команды внутри приложения эту ситуацию не исправят.
В таком случае решение одно — удалить устаревшую версию и установить актуальную сборку Termux с F-Droid или из официального репозитория проекта на GitHub. Перед удалением сохраните важные файлы из домашнего каталога Termux, так как удаление приложения стирает его данные.
| Причина ошибки | Признак | Решение |
|---|---|---|
| Устаревший индекс пакетов | Ошибка у любых пакетов | pkg update && pkg upgrade |
| Недоступное зеркало | Ошибки соединения при update | termux-change-repo |
| Termux из Google Play | Не работают все установки | Переустановка из F-Droid |
| Опечатка в команде | Ошибка у одного пакета | Проверить написание |
| Повреждён sources.list | Ошибки apt о недействительных источниках | Восстановить источник через termux-change-repo |
Шаг 4. Проверьте сеть и DNS
Иногда репозиторий исправен, но сеть устройства мешает к нему обратиться. Вам нужно убедиться, что интернет работает стабильно: попробуйте переключиться с мобильных данных на Wi-Fi или наоборот и повторить pkg update. Некоторые операторы и корпоративные сети фильтруют трафик, что влияет на доступ к отдельным серверам.
Также возможна ситуация с некорректным разрешением имён. Проверить доступность сервера можно простой командой ping к адресу зеркала, если утилита установлена. Если имена не разрешаются, возможная причина — DNS провайдера; смена DNS на уровне системы Android иногда устраняет проблему, но конкретные настройки зависят от версии системы и прошивки.
⚠️ Внимание: не скачивайте установочные файлы Termux с неофициальных сайтов и сторонних каталогов приложений. Под видом «обновлённого Termux» нередко распространяются модифицированные сборки. Используйте только F-Droid или официальный репозиторий проекта.
Что означают другие похожие ошибки
Ошибка E: Unable to locate package — пакет не найден в индексе, решается обновлением списка. Ошибки 404 или Failed to fetch при pkg update указывают на недоступное зеркало — помогает termux-change-repo. Сообщения про подписи репозитория говорят о проблемах с ключами и чаще встречаются на устаревших сборках Termux.
Шаг 5. Установка Python и проверка результата
После того как pkg update завершается без ошибок, установка Python сводится к одной команде. Менеджер пакетов автоматически подтянет зависимости, включая интерпретатор и базовые библиотеки:
pkg install python
Убедиться в успехе можно, запросив версию интерпретатора:
python --version
Если в ответ выводится номер версии — среда готова к работе, и можно ставить pip-пакеты. Если вместо этого снова появляется unable to locate package python, вернитесь к проверке источника установки Termux: на актуальной сборке с рабочим репозиторием эта команда находит пакет всегда.
Частые вопросы
Почему pkg install python не работает сразу после установки Termux?
Свежая установка ещё не имеет локального индекса пакетов. Сначала обязательно выполните pkg update, чтобы загрузить список доступных пакетов, и только затем устанавливайте что-либо.
Можно ли установить Python 2 вместо Python 3?
Пакет python в Termux соответствует третьей ветке языка. Поддержка Python 2 в репозиториях прекращена, поэтому ориентируйтесь на актуальную версию и адаптируйте старые скрипты под неё.
Ошибка возникает только с одним пакетом — в чём дело?
Проверьте написание имени: регистр и дефисы имеют значение. Также пакет может находиться в дополнительном репозитории — например, некоторые пакеты требуют подключения x11-repo или root-repo через соответствующие пакеты-установщики.
Поможет ли очистка данных Termux?
Очистка данных сбрасывает окружение, но если Termux установлен из Google Play, проблема вернётся — репозитории этой сборки не работают. Эффективнее переустановить приложение из актуального источника.
Как проверить, какие пакеты вообще доступны?
Используйте поиск: pkg search python покажет все пакеты с этим словом в названии и описании. Если поиск ничего не находит, индекс пакетов точно не загружен — возвращайтесь к pkg update.