Что делать если нужно поставить какую-то 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
⚡️🏳️🇸🇾🇦🇪 La Siria in rovina - Voci di evacuazione⚡️
🗓 Ieri, 7 dicembre 2024 , un jet privato registrato in #Gambia ha effettuato quattro voli giornalieri sulla rotta Damasco-Abu Dhabi verso gli Emirati Arabi Uniti.
⚔️ Damasco sta per cadere. Ci sono voci:
💬 Per quanto riguarda Bashar al-Assad , secondo alcune informazioni, la sua famiglia è già in Russia, e i suoi generi sono negli Emirati Arabi Uniti. Secondo alcune informazioni, lui stesso rimane in Siria, secondo altre, è anche negli Emirati Arabi Uniti, ma andrà in Russia.
📌 È degno di nota il fatto che durante l'intero periodo dell'invasione non si sia mai rivolto al suo popolo chiedendogli di proteggere il governo eletto.
🇧🇧#Barbados / 🇬🇲#Gambia - 🇫🇷#France: Footage from two separate two week training programs carried out by French forces in Gambia and Barbados.
In Gambia, French troops trained local armed forces, focusing on combat drills and battlefield medical care. The training was held at the Forward Operating Base in Yundum, with support from a French Mobile Training Team and elements of the Gambia Navy.
Meanwhile, at the same time over in the Caribbean, French forces ran a separate exercise with the Barbados Defence Force, this time focused on beach assaults and coastal defence.
📸 1 - 3 🇬🇲
📸 4 - 6 🇧🇧
Alhaji Bai Konte, Dembo Konte, Ma Lamini Jobate — Gambian Griot Kora Duets (Folkways Records, 1979)
#kora#griot#Gambia
Кора похожа на арфу, со струнами, натянутыми на половинку тыквы. На протяжении веков кора была визитной карточкой сложной полиритмической западноафриканской музыки. Альбом Gambian Griot Kora Duets документирует эволюцию использования коры в традиционной музыке Гамбии. Он был записан при участии Альхаджи Бай Конте, его сына, Дембо Конте, и еще одного музыканта, Ма Ламини Джобате. Исполнители на коре неразрывно связаны с традицией Джали, представителями которой являются семьи гриотов Западной Африки. Гриоты – хранителями местной культуры, типа ашугов или трубадуров. В то же время этот альбом ознаменовал начало международного интереса к коре. После записи пластинки Дембо Конте отправился в турне по всему миру, выступил в легендарной программе Джона Пила на BBC в 1989 году и сотрудничал с влиятельной группой Mustaphas 3.
🔗Spotify | AppleMusic | Bandcamp
Con un Rescriptum ex Audientia SS.mi, Papa #LeoneXIV, a seguito dell'udienza concessa al Cardinale Segretario di Stato, Pietro Parolin, il 29 gennaio scorso, ha disposto l’approvazione dello Statuto emendato della Fondazione “Giovanni Paolo II per il Sahel”, allineando al quadro normativo vigente per le Persone Giuridiche strumentali della Curia Romana e alla normativa sul patrimonio della Sede Apostolica.
Della Fondazione, si legge nel Rescritto pubblicato oggi, fanno parte 9 paesi della regione del #Sahel: #BurkinaFaso, #CapoVerde, #Gambia, #GuineaBissau, #Mali, #Mauritania, #Niger, #Senegal e #Ciad. “L’obiettivo primario della Fondazione - recita lo Statuto - è promuovere la formazione di persone che si dedicano al servizio del proprio Paese e dei propri simili, senza discriminazioni, in uno spirito di sviluppo umano integrale e solidale, per combattere la desertificazione e le sue cause e per fornire assistenza alle vittime della siccità nei Paesi del Sahel”.
Di qui la priorità alla formazione di facilitatori ed esperti locali e al finanziamento di progetti nell’0 ambito dello sviluppo tecnico, socio-sanitario, socio-agricolo, socio-economico, sviluppo integrale e ambientale. Il patrimonio della Fondazione, per volere del Papa, è costituito dal ricavato delle collette organizzate in tutto il mondo cattolico a beneficio del Sahel.
🌟🔔 «Ритмическое путешествие продолжается!» 🥁🌟
Гриоты — мастера ритма, слова и памяти 🎶🥁🗣️
В традициях Западной Африки гриот (джели/джали) — артист и хранитель того, что доверяют времени: имя рода — честь семьи — нить преемственности. Он выходит к людям с тремя нитями в ладонях — памятью, голосом и ритмом — и делает главное: собирает общину в одно целое.
До письменных законов и документов мир во многом держался на ритме: он связывал разум, душу и тело, выравнивал дыхание и шаг, настраивал внимание — и давал словам меру и вес.
🥁 Ритмом гриот сводит голоса в общее “мы” и охлаждает спор, пока он не вспыхнул враждой.
🗣️ Словом он поднимает планку чести похвалой, возвращает меру точной сатирой, скрепляет союзы памятью имён и обещаний.
🎶 Музыкой (иногда под кору или балафон) он учит слушать, передаёт нормы через чувство и переводит прошлое в поступок — прямо сейчас.
А теперь загадка!
Что связывает прошлое, настоящее и будущее ⏳ — и одновременно разум, душу и тело 🧠❤️🧍?
Это — РИТМ 🥁✨
🔄 Сохраняйте пост и приглашайте друзей в наше увлекательное путешествие вокруг света африканских ритмов!🎶🌍
#TasteOfAfrica#WestAfrica#Africa#AfricanCulture#OralTradition#Griot#Jeli#Jali#Storytelling#Music#Traditions#Heritage#Culture#History#Kora#Balafon#Mali#Senegal#Gambia#Guinea
Страны
#Afghanistan#Algeria#Argentina#Armenia#Australia#Austria#Azerbaijan#Bahrain#Belgium#Brazil#Bulgaria#Burkina_Faso#Cape_Verde#China#Colombia#Comoros#Congo#Cyprus#Djibouti#Egypt#Ethiopia#France#Gabon#Gambia#Georgia#Germany#Ghana#Greece#Guatemala#Haiti#India#Indonesia#Iran#Iraq#Ireland#Israel#Italy#Jamaica#Japan#Kosovo#Lebanon#Madagascar#Malaysia#Mali#Mexico#Moldova#Morocco#Nepal#Netherlands#Niger#Nigeria#Norway#Pakistan#Palestine#Peru#Poland#Portugal#Romania#Russia#Rwanda#Saint_Lucia#Senegal#Somalia#South_Africa#South_Korea#South_Sudan#Spain#Sweden#Sweden#Switzerland#Syria#Tajikistan#Tanzania#Thailand#Trinidad_and_Tobago#Tunisia#Turkey#Ukraine#United_Kingdom#United_States#Uruguay#Uzbekistan#Venezuela#Yemen#Zambia#Zimbabwe