Что делать если нужно поставить какую-то Python-библиотеку а root-прав нет? То есть в систему библиотеку никак и ничего не поставить.
Есть как минимум два способа это решить правильно!
🔸 Сделать виртуальное окружение и ставить там что угодно.
Это позволит создать полностью независимое исполняемое окружение для ваших приложений.
Все библиотеки будут храниться в домашней директории юзера а значит доступ на запись имеется.
Создать очень просто:
python3 -m venv ~/venvs/myenvname
Теперь активируем окружение
# Linux
source ~/venvs/myenvname/bin/activate
# Windows
%userprofile%\venvs\myenvname\Scripts\activate.bat
Можно ставить любые библиотеки и запускать приложение.
Это стандартный метод работы с любым проектом. Если еще не используете его, то пора начинать. Даже при наличии root доступа!
🔸 Бывает, что нет возможности запустить приложение из своего виртуального окружения. Например, его запускает какой-то сервис от вашего юзера и вставить активацию окружения вы не можете.
В этом случае можно установить библиотеки для Python не глобально в систему, а только для юзера.
Выполните этот код в консоли:
python3 -m site
Вы получите что-то такое:
sys.path = [
'/home/user',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'/home/user/.local/lib/python3.7/site-packages',
...
]
USER_BASE: '/home/user/.local'
USER_SITE: '/home/user/.local/lib/python3.7/site-packages'
ENABLE_USER_SITE: True
Нас интересует параметр USER_SITE. Это путь к пользовательским библиотекам, которые доступны по умолчанию, если они есть.
Именно сюда будут устанавливаться модули если добавить флаг --user при установке чего-либо через pip
pip install --user requests
Для этой команды не нужны root-права.
После неё можно запускать системный интерпретатор без виртуальных окружений и установленная библиотека будет доступна для текущего юзера.
Параметр USER_BASE показывает корневую директорию для хранения user-библиотек. Её можно изменить с помощью переменной окружения PYTHONUSERBASE
export PYTHONUSERBASE=~/pylibs
python3 -m site
...
USER_BASE: '/home/user/pylibs'
USER_SITE: '/home/user/pylibs/lib/python3.7/site-packages'
Получается некоторое подобие виртуального окружения для бедных 😁 которое можно менять через эту переменную (не делайте так!Лучше venv!)
🔸 Дописывание пути в PYTHONPATH
Этот способ не входит в список "двух правильных", но тоже рабочий. Здесь придётся сделать всё несколько сложней.
Сначала ставим библиотеку в любое место указывая путь установки
pip3 install -t ~/mylibs modulename
Библиотека установится без привязки к какому-либо интерпретатору. То есть по умолчанию не будет видна. Теперь в нужный момент добавляем этот путь в sys.path или в PYTHONPATH.
Не буду советовать так делать. Единственный раз когда этот способ мне пригодился и решил поставленную задачу, это при создании общей библиотеки для кластера компьютеров.
Модули лежат в сети и подгружаются для всех из одного и того же места. То есть обновлять файлы требуется только один раз а не на всех хосты отдельно.
Минусы такого подхода:
▫️Нужно всем хостам пробить нужный путь в .bashrc или ещё куда-то чтобы он сетапился на старте.
▫️Чем больше хостов тем больше нагрузка на сеть. Иногда такой способ не подходит именно по этой причине. Тогда Ansible вам в помощь.
▫️Не очень подходит если хосты с разными операционками. Некоторые библиотеки различаются для Linux и Windows (там, где есть бинарники) и приходится мудрить более сложные схемы.
#tricks#basic
🤖Новые возможности для разработчиков циферблатов для WearOS
В WearOS 6 будет поддерживаться новая версия Watch Face Format (WFF). Она принесет
👉 Добавление пользовательского фото
👉 Анимации при переходе и выходе из спящего (ambient) режима
👉 Цветовые трансформации на основе значения
👉 Автоматическое изменения размера текста (доступно в WFF v3)
#android#wearos
🤖WearOS 6 позволит создавать магазины циферблатов
Google предоставляет множество возможностей по созданию циферблатов для WearOS на основе Watch Face Format и в следующей ОС добавляют Watch Face Push API, позволяющее создать свой магазин циферблатов 🤯
Циферблаты будут публиковать как и ранее. Разработчик может сделать приложение с витриной циферблатов и устанавливать их на часы с помощью Watch Face Push API
#android#wearos
🤖Snapdragon Wear Elite — новый чип для носимых устройств
На MWC 2026 Qualcomm анонсировала Snapdragon Wear Elite — первый чип серии Elite для носимых устройств. И это реально большое обновление на бумаге.
Чип сделан по 3нм техпроцессу. По сравнению с предыдущим Snapdragon W5+ Gen 2:
🚀 5x быстрее по CPU
🚀 7x быстрее по GPU
🔋 +30% к времени работы от батареи
⚡️зарядка до 50% всего за 10 минут
Главная фишка — впервые в носимых появился выделенный Hexagon NPU с поддержкой моделей до 2B параметров прямо на устройстве🤯
Это значит, что голосовые помощники, перевод, транскрибация и фитнес-аналитика смогут работать без облака.
Первые устройства ждём уже через несколько месяцев. Интересно, будет ли это заметно в реальном использовании или снова всё утонет в маркетинге AI-фич, а их работа приведет к быстрому сгоранию заряда батарейки на устройстве.
#Android#AndroidDev#WearOS
🤖Из WearOS убирают поддержку циферблатов на основе AndroidX / Wearable Support Library (WSL)
Как часть улучшения качества работы WearOS компания отказывается от использования старых инструментов для создания циферблатов и переходит на Watch Face Format (уже скоро будет версия 4) - декларативный XML формат без написания кода для создания циферблатов 🤯
Все изменения вступают с 14 января 2026, а именно:
‼️ Пользователи не смогут установить циферблаты старых форматов. Те что уже были установлены, продолжат работать.
‼️ Разработчики циферблатов должны мигрировать на WFF
🪙 Для циферблатов старого формата отключат всю монетизацию
‼️ Если использовали Watch Face Studio для создания циферблата, тогда вам надо повторно отправить их в Google Play с использованием версии 1.8.7 и выше
⚰️ Публиковать циферблаты старого формата уже нельзя с 27 января 2025, только обновлять те что опубликовали ранее
Подробнее про новый формат циферблатов в официальной документации
#android#wearos#googleplay
My first Wear OS app on Play Store, “Simple Memo”, is now open for testing.
Check it out and learn how to join the test!
https://1a23.com/works/open-source/simple-memo/
#WearOS#PlayStore🐟
🤖Важно для разработчиков Wear OS: с 2026 года обязательна 64-битная поддержка
Google объявила, что с 15 сентября 2026 года все новые приложения и обновления для Wear OS, содержащие нативный код (C/C++), должны включать 64-битную версию наряду с 32-битной. Google Play начнёт блокировать загрузку несовместимых APK/AAB.
Что нужно сделать разработчикам:
👉 Проверьте, есть ли в вашем приложении нативный код (файлы .so в lib/armeabi-v7a или lib/arm64-v8a). Даже если вы не пишете на C++, зависимости или SDK могут его добавлять.
👉 Для каждой 32-битной ABI (armeabi-v7a) добавьте 64-битную (arm64-v8a).
👉 Обновите сторонние SDK до версий с поддержкой 64 бит.
👉 Протестируйте приложение на 64-битном эмуляторе Wear OS (все новые образы уже 64-битные).
⚠️ Политика 32-битной поддержки не отменяется — Google Play по‑прежнему будет доставлять приложения на старые 32-битные устройства.
🔗Гайд по миграции
🔗 Источник - Android Dev Blog
#WearOS#AndroidDev#GooglePlay
Material 3 Expressive начали раскатывать на Android часы. Сразу сделали краткий обзор нововведений и запустили неделю, посвященную разработки под обновлённую WearOS
#android#wearos#material3expressive