Что делать если нужно поставить какую-то 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
▶️Google Play do‘konidan 1,8 million ilova olib tashlandi!
🧹 2024-yil boshidan beri Google ilovalar do‘konida tozalash ishlari boshlandi. Natijada mavjud ilovalar soni 47% ga kamaydi.
🛡 Sabablari:
- Past sifatli va keraksiz ilovalarga qarshi kurash
- Sun’iy intellekt orqali zararli ilovalarni aniqlash
- Yevropa Ittifoqining yangi talablariga javob bermagan ilovalarning bloklanishi
✅ Har bir yangi ilova endi 20 ta test foydalanuvchisi bilan 2 hafta sinovdan o‘tishi shart
📊 Qaysi ilovalar ketdi?
🎮 O‘yinlar — 200 ming+
📚 Ta’lim — 160 ming+
🏢 Biznes — 115 ming+
🚫158 mingdan ortiq ishlab chiquvchilar bloklandi.
📈 Shunga qaramay, yangi ilovalar soni 7,1% ga oshgan — endi raqamlar kam, lekin sifat yuqori!
🎥#googleplay | Birinchi raqamli IT-Blog
▶️ Google Play batareyani tez sarf qiladigan ilovalarni belgilay boshladi
⚠️ 1-martdan boshlab, smartfon batareyasini ortiqcha sarf qiladigan ilovalar maxsus ogohlantirish oladi.
✅ Agar ilova fon rejimida uzoq ishlasa, tizim bu holatni qayd qiladi.
✅ Agar oy davomida ko‘plab foydalanuvchilarda bu vaziyat takrorlansa, ilovaga maxsus belgi qo‘yiladi.
Maqsad: foydalanuvchilar batareyani tez sarf qiladigan ilovalarni ko‘rishi mumkin, ishlab chiquvchilar esa optimizatsiyaga e’tibor beradi.
👍Bizning barcha loyihalar | #googleplay
🛒Google Play теперь предупреждает пользователей о приложения с высоким расходом батареи
Пользователи увидят красную плашку сразу в шапке страницы приложения в Google Play с предупреждением. Установка всё также будет возможна. Задача изменения - уведомление пользователей и попытка повилять на кол-во установок, чтобы пользователи сами решили всё.
Раскатка фичи началась с 1 марта 2026 года на приложения, которые были определены как "с высоким расходом батареи". В течении нескольких недель такая плашка появится на всех приложения в Google Play
Уже давно есть инструменты в Google Play консоле чтобы увидеть, что ваше приложение расходует много энергии или тормозит. Просто перестаньте игнорировтаь их.
🔗 Источник - блог Android Developers (там же набор рекомендаций по устранению проблем с расходом батареи)
#GooglePlay
🛒 Google Play меняет свои правила после победы Epic Games
Ключевые изменения:
👉Больше не будет форсирования оплаты цифровых товаров и подписок через Google Play
👉Сторнние сторы получат возможности как у Google Play
Registered App Stores - официальная для программа для сторонних магазинов. Те кто решит пойти в программу поулчат сразу при установке все разрешения и опыт близкий к работе Gooogle Play Программа стартует за пределами США и только потом станет доступна там.
🪙 Снижение комисии магазина. Теперь процент зависит от разных факторов, но использовать Google Play Billing точно становится приятнее
💬Как на ваш взгляд это повлияет на монетизацию разработчиков и возможности распространения приложения?
Источник - оф блог Android Developers
#GooglePlay
🛒 Google Play врёт с размером обновления?
Уже не первый раз замечаю как при обновлении приложения вижу одну цифру, в когда начинаю обновлять - объем скачиваемых данных больше
💬 Делитесь идеями в комментариях
#GooglePlay
‼️🛒Google Play становится открытым в США🤯
Google Play разрешил приложениям в США размещать ссылку на альтернативные методы оплаты в приложения и использования Google Play Billing теперь необязательно.
UPD! Google сделала это по решению суда, а не по собственной воли
#googleplay
🛒Пример использования Google Play Age Signals API (beta)
// Создаем экземпляр менеджера
val ageSignalsManager = AgeSignalsManagerFactory.create(
ApplicationProvider.getApplicationContext()
)
// Запрашиваем проверку возрастных сигналов
ageSignalsManager
.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener { ageSignalsResult ->
// Сохраняем installId для дальнейшего использования
val installId = ageSignalsResult.installId()
when (ageSignalsResult.userStatus()) {
AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED -> {
// Пользовтаелю меньше 18 лет и родитель запретил доступ
}
AgeSignalsVerificationStatus.VERIFIED -> {
// Пользователю больше 18 лет
}
else -> {
// Обрабатываем другие статусы
}
}
}
#googleplay
‼️ Дуров нас предупреждал - стала доступна betа версия API для проверки возраста из-за новых требований в отдельных штатах США
Google Play Age Signals API позволяет получить "сигналы" касательно возраста пользователя и дальнейшей реакцией приложения на полученную информацию
Новое API вызвано требованием обязательной проверки магазином возраста пользователя с 1 января 2026 в штате Техас
#googleplay
🛒Google Play отказывается от "in-app purchase" (SKU). На замену приходит "One-time product" OTP - гибче и лучший способ для продаж цифровых товаров внутри приложения
Каждый OTP может иметь несколько вариантов покупки, отражая разные способы получения пользователем. Также можно добавить несколько "специальных предложений" для OTP.
Система стала гибче и проще для проведения экспериментов с одним и тем же товаром, а именно:
👉 Разные способы продажи
👉 Сдача товара в аренду (временная покупка)
👉 OTP могут быть предзаказаны
👉 Нет цены по умолчанию
👉 Управление ценой в регионе и доступность товара
👉 Гибкая система создания акций для OTP
В Google Play Console вы можете мигрировать с существующей SKU системы в новую модель и будет обратная совместимость, если вы решите не переносить товары.
Чтобы получить все возможности в коде вашего приложения на Android надо перейти на Play Billing Library 8.0
#googleplay
🛒Обновление правил Google Play от 10 июля 2025
Что самого важного из изменений:
👉 Разрешение рекламы краткосрочных займов только в Пакистане
👉 Изменения касательно криптовалют и цифровых кошельков
👉 Уточнили как использовать разрешения для чтения сенсоров тела
👉 Добавили практики по использованию контента, сгенерированного AI,
📹Видео версия
#googleplay
🛒В Google Play можно будут остановить раскатку после Full Rollout🔥
Одна из причин раскатки приложения пошагово - желание проверить как работает новая версия, но уже традицией стало оставлять раскатку на 99% из-за того что после полной нельзя остановить её. Теперь это станет возможным
#googleplay