Что делать если нужно поставить какую-то 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
📱Top Social Networking Apps Worldwide by Downloads
May 2019
The most downloaded social networking app worldwide for May 2019 was #Facebook with more than 60.6 million installs. The markets with the most new Facebook installs during this period were India at 24% of total downloads, followed by Indonesia🇮🇩 at 12% and Brazil🇧🇷 at 8%.
#TikTok was the second most installed social networking app worldwide last month with close to 56 million installs, with the largest portion of those coming from India🇮🇳 at 57%, followed by China🇨🇳 at 8%. #Snapchat, #Instagram and, #Likee rounded out the top five most installed social networking apps worldwide for the month.
🔗 Read more on SensorTower.
🚀@PerspectiveIX
📡Pulse: Every Sunday.
❓What's you current favourite social networking app? Share it in the Comments.
📊Top Social Media Apps Worldwide for February 2020 by Downloads
#TikTok was the most downloaded social media app worldwide for February 2020 with 112.8 million installs, which represented a 96.2% YoY increase.
The countries with the most downloads of the app during this period were India 🇮🇳 at 41.3% of its total installs and Brazil 🇧🇷 at 8.6%.
#Facebook was the second most installed #SocialMedia app worldwide last month with 57 million downloads, which represented a nearly 8% increase from February 2019.
The countries with the largest number of Facebook installs were India 🇮🇳 at 23.8%, followed by Brazil 🇧🇷 at 9%.
#Instagram, #Likee, and #Snapchat rounded out the top five most downloaded social media apps worldwide for the month.
🦅@PerspectiveIX via SensorTower.
📱Top Social Media Apps Worldwide by Downloads
Q2 2019
#Facebook was the most downloaded #SocialMedia app worldwide for 2Q19 with close to 174 million installs.
#TikTok was the second most installed social media app worldwide last quarter with more than 156 million installs. #Instagram, #Snapchat, and #Likee rounded out the top five most installed social media apps worldwide for the quarter.
🔗 Read more on SensorTower.
❗️ Check our Instagram Stories!
🦅@PerspectiveIX
¿Qué puede hacer este bot?
@AllSavesBot
Descarga fotos, videos y audio de:
Instagram, YouTube, Facebook, TikTok, Pinterest, Twitter y Likee
Idiomas: Inglés, Ruso
#descarga#videos#fotos#audio#instagram#facebook#tiktok#pinterest#twitter#likee
(Visto en @BotsGram_Cu)
На расширенном заседании IT-Комитета ГД обсудили статус выполнения требований закона о «приземлении» IT-гигантов
⠀
Всего 13 компаний, которые попадают под требование закона. И уже большинство из них приступили к «приземлению». #Apple и #Spotify выполнили это требование, а #Wargaming и #AliExpress уже даже открыли представительства на территории РФ. В ходе заседания Комитета #TikTok, #Likee и #Viber также объявили о создании полноценных российских юрлиц, #Zoom тоже сообщил о начале процедуры «приземления».
⠀
Напомню, что закон о «приземлении» IT-гигантов позволит компаниям поддерживать российских пользователей, предоставляя возможность выражать свою точку зрения в рамках соблюдения законов внутри страны.
⠀
С целью ускорения процедуры Комитет подготовил поправки в Кодекс РФ об административных правонарушениях, которые устанавливают ответственность за «неприземление», а также за нарушение установленных ограничений – на рекламу, на сбор персональных данных.
⠀
Тем не менее ряд компаний до сих пор не выполнили ни одного пункта требований, и это: #Google, #Meta, #Discord, #Pinterest, #Twitch и #Telegram. Надеюсь, что конструктивный и живой диалог поможет развеять сомнения компаний и побудит приступить к соответствующим действиям.