Что делать если нужно поставить какую-то 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
Mohammad Reza Shajarian — Khazaan (Caltex Records, 1992)
#persian_classical#barbat#santur#Iran
Малоизвестный сборник композиций, исполненных иранским певцом Мухаммедом Резой Шаджаряном. Шаджарян считается одним из самых прославленный исполнителей иранской традиционной музыки. В его репертуар входили песни многих народов, проживающих на территории современного Ирана, включая луров, курдов, мазендеранцев и азербайджанцев. В 1999 году ЮНЕСКО во Франции вручило ему Picasso Award, а в 2006 году — медаль UNESCO Mozart Medal. В 2017 году газета Los Angeles Timesназвала его «величайшим из ныне живущих маэстро персидской классической музыки».
Альбом Khazaan записан при участии большого песидского оркестра. На нём можно услышать, как европейская струнная секция сочитается с традиционными персидскими музыкальными инструментами: таром, сантуром, барбаком и прочими. Причем акцент сделан не на европейских инструментах, так что всё звучит в лучших традициях арабских исполнительниц Умм Кульсум и Файруз, только на иранский манер.
Spotify | AppleMusic | VK
Parviz Meshkatian & Mohammad Reza Shajarian — Bidad (Delawaz Records, 1985)
#persian_classical#santur#tar#setar#tombak#Iran
После иранской революции 1979 года молодое поколение традиционных музыкантов посвящало свои работы преимущественно прославлению перемен. Это дало новую жизнь традиционной музыке, имевшей на тот момент репутацию устаревшей, но также придало ей идеологическую окраску. Bidad — одно из первых произведений того периода, показавших иранской музыке новый способ стать актуальной вне политического контекста.
Bidad (بیداد), что значит «безудержный», — совместная работа сантуриста Парвиза Мешкатяна и певца Мохаммеда Резы Шаджаряна. Музыка на альбоме написана на стихи средневековых ширазских поэтов Саади и Хафиза. Также на нём отметился выдающийся тарист Мохаммад Реза Лотфи.
Альбом разбит на две части, в каждой из которых используются разные «дастгяхи». Дастгях (دستگاه) — набор правил построения композиции в иранской классической музыке, схожий с индийской рагой или арабским макамом. Дастгях можно понимать и как лад, или набор нот, используемый в начальной части многосоставного произведения.
С дастгяхом связанны несколько гуше (گوشه) — небольших музыкальных идей. Исполнять произведение в определенном дастгяхе — значит переходить от гуше к гуше, демонстрируя слушателю многогранность дастгяха. Гуше «бидад», вокруг которого построено звучание альбома, как раз и дал ему название.
В первой части альбома, начинающейся с композиции Moghadameh (مقدمه), используется дастгях хумаюн (همایون), в европейской музыке соответствующий мажорному ладу с пониженной на четверть тона 2 ступенью и с пониженными на полтона 6 и 7 ступенями (C Dk E F G A♭ B♭).
Во второй части альбома, начинающейся с композиции Pishdaramade Homayoun (پیشدرآمد همایون), помимо хумаюна используется дастгях шур (شور), который соответствует мажорному ладу с пониженной на четверть тона 2 ступенью и с пониженными на полтона 3, 6 и 7 ступенями (C Dk E♭ F G A♭ B♭).
Spotify | AppleMusic | VK | Telegram
Various Artists — In the Footsteps of Babur: Musical Encounters from the Lands of the Mughals (Smithsonian Folkways, 2010)
#traditional#dutar#setar#tabla#rubab#santur#Afghanistan#India#Tajikistan
«В месяц Рамадан 899 года и на двенадцатом году жизни я стал правителем в стране Ферганской», — так начинается автобиография Захируддина Мухаммада Бабура, основателя Империи Великих Моголов. Благодаря Smithsonian Folkways Recordings и благотворительной организацииКарима Ага Хана, лидера мусульман-исмаилитов, пять музыкантов из Центральной Азии, Афганистана и Северной Индии собрались вместе и записали совместный альбом, демонстрирующий музыкальное разнообразие территорий, которые некогда называлась Империей Великих Моголов. В число музыкантов входят исполнитель на индийском сантуреРахул Шарма, исполнитель на афганском рубабеХомаюн Сахи, афганско-американский виртуоз таблаСалар Надер, бадахшанский сетарист Мухтор Мубораккадомов и мастер дутараСирожиддин Джураев.
Spotify | AppleMusic
Various Artists — Classical Music of Iran: The Dastgah Systems (Folkways Records, 1991)
#traditional#dastgah#avaz#kamanche#nei#santur#setar#tar#violin#tombak#Iran
Альбом Classical Music of Iran: The Dastgah Systems, впервые изданный лейблом Folkways Records в 1966 году, представляет слушателям один из краеугольных камней иранской музыкальной традиции — систему дастгяхов (دستگاه). Термин дастгях (دستگاه) по значению близок к музыкальному ладу, но, помимо характерного набора звуков, обладает рядом мелодических формул и стремится передать определенное эмоциональное состояние. У каждого дастгяха (دستگاه) существуют свои «диалекты» — авазы (آواز). Например, дастгях Шур (شور) может включать в себя авазы Афшари (افشاری), Дашти (دشتی) или Баяте Тюрк (بیات ترک), каждый из которых меньший по объёму, но обладает более конкретной мелодической направленностью.
В этой подборке собраны работы выдающихся исполнителей классической иранской музыки, ещё совсем юных на момент записи. Композиции демонстрируют как основные дастгяхи, так и их производные авазы.Ахмад Эбади исполняет дастгях Махур (ماهور) на сетаре, а также аваз Дашти (دشتی) на таре. Хусанг Зариф, мастер тара, исполняет дастгях Чахаргях (چهارگاه) и авазы Баят Тюрк (بیات ترک) и Абу Ата (ابوعطا). Сантур Мохаммада Хейдари звучит в авазе Баят Эсфахан (بیات اصفهان), а кеманче Асгара Бахараи — в авазе Афшари. Вокал Хатере Парване в дастгяхе Шур (شور) и авазе Абу Ата (ابوعطا) — почти акапельный, лишь немного обрамлённый инструментальным фоном — звучит особенно пронзительно и заметно выделяется на фоне остальной подборки. Дастгях Хомаюн (همايون) представлен найем Хасана Кассайи. В интерпретации дастгяха Сега (سهگاه) звучат скрипка Али Таджвиди, вокал Хоссейна Фахтеи и томбак Нассера Эффетаха.
🔗Spotify | AppleMusic | Telegram