Что делать если нужно поставить какую-то 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
#SinfoníaFantástica#Berlioz#DimaSlobodeniouk
Título:La Sinfonía fantástica, Op. 14
Autor:Hector Berlioz
Movimientos:
🎵 00:26 I. Rêveries, passions
🎵 15:45 II. Un bal
🎵 22:35 III. Scène aux champs
🎵 39:05 IV. Marche au supplice
🎵 44:20 V. Sogne d'une Nuit du Sabbat
Interpretación:
Orquesta Sinfónica de Galicia
Director:
Dima Slobodeniouk
Fuente:🎼
@ClasicaAlAtardecer
#SinfoníaFantástica#Berlioz#DimaSlobodeniouk
LA SINFONÍA FANTÁSTICA, OP. 14
La Sinfonía fantástica, cuyo nombre completo en francés es Symphonie fantastique: Épisode de la vie d'un artiste ... en cinq parties (Sinfonía fantástica: Episodio de la vida de un artista, en cinco partes), Op. 14, es una sinfonía programática del compositor francés Hector Berlioz, compuesta en 1830. Es una pieza importante del período romántico temprano. Su estreno tuvo lugar en el Conservatorio de París el 5 de diciembre de 1830. Franz Liszt realizó una transcripción para piano de la sinfonía en 1833.
La composición consta de cinco movimientos, en vez de los cuatro habituales para las sinfonías de la época:
🎵I. Rêveries – Passions (Sueños – Pasiones) - do menor/do mayor
🎵 II. Un bal (Un baile) - la mayor
🎵III. Scène aux champs (Escena en los campos) - fa mayor
🎵IV. Marche au supplice (Marcha al cadalso) - sol menor
🎵V. Songe d'une nuit du sabbat (Sueño de una noche de sabbat) - do mayor
La sinfonía posee un argumento muy detallado. Es por esta razón que se suele decir que es uno de los mejores ejemplos de la música programática; también es quizás uno de los primeros argumentos.
La primera parte es titulada por Berlioz como Ensueños y Pasiones. Empieza con un largo mediante un melancólico tema presentado por los primeros violines, llamado por su autor el malestar del ánimo. Sigue el allegro agitato y appassionato assai, con su tema principal y leitmotiv de toda la sinfonía, la idée fixe, cuya primera parte, pertenece al principio de la cantata Herminie que ya se ha mencionado en el párrafo sobre el Prix de Rome. Está presentada por los primeros violines y la flauta. El tema secundario es una modificación del propio tema principal. La reexposición termina con imitaciones de los instrumentos de viento de la idée fixe que se va diluyendo hasta acabar con una cadencia religiosa o sea en el estilo de la música de la Iglesia.
La segunda parte está titulada Un baile. Se trata de un scherzo en forma de un elegante vals. En su instrumentación las arpas le dan un color delicado. En el trío aparece nuevamente la idée fixe, primero interpretada por la flauta y el oboe y luego por la flauta y el clarinete. Se repite el vals con nueva instrumentación y en la coda aparece otra vez la idée fixe, ahora interpretada por el clarinete solo.
La tercera parte se titula Escena en los campos. Es un adagio que empieza con un dúo pastoral interpretado por el corno inglés y el oboe solistas. Luego los violines primeros y la flauta presentan el idílico tema principal. Este tema pertenece al Gratias de su “Messe Solennelle” de 1824. Después de varias variaciones del tema que terminan en un crescendo, se encuentra un fragmento de canto de pájaros, efecto producido por varios instrumentos de viento. Luego se repite el tema principal y vuelve a presentarse la idée fixe, respondiendo a un recitativo dramático de los bajos de la orquesta. Termina escuchándose truenos lejanos producidos por los timbales, mientras resurge de nuevo la idée fixe.
La cuarta parte se titula Marcha hacia el suplicio. Es un allegretto non troppo en forma de marcha trágica. Empieza con redobles rítmicos de los timbales, siguiendo con la introducción de la sombría marcha por los violoncelos y contrabajos. Se repite varias veces aumentando la tensión. En una especie de trío, los vientos presentan un segundo tema brillante y solemne.
En este último movimiento apreciamos esta multiplicidad de transformaciones y sonoridades extrañas; hay un sonido de campanas, un clarinete, el golpeteo de las cuerdas de los violines y las violas con el arco de madera y glissandos en los alientos. En las dinámicas hay cambios bruscos de fortissimo a pianissimo construyendo la imaginería grotesca del aquelarre y la ensoñación. La coda final está basada en el tema del Sabbat deformado rítmicamente, en una especie de danza diabólica.
@ClasicaAlAtardecer
“УТРО ПОНЕДЕЛЬНИКА” vs БЕРЛИОЗ
Так называется самый мой «нелюбимый» фильм Отара Иоселиани. Не очень помню сюжет, поскольку, как всегда у него, сюжета практически нет. Есть история про то, как все не любят это утро и прекрасная музыка композитора Зурабишвили и классиков (Моцарта, как в его же «Пасторали»).
Нас с сестрой пригласили в гости на День Рождения. Было это в другой жизни. В понедельник. Правда, не утром, а днём.
Пригласила нас бабушка отличницы моего класса в Мерзляковке, где я тогда училась (ДМШ Училища при Московской консерватории в Мерзляковском переулке).
Эта была чудесная старомосковская семья, жившая в том же Мерзляковском переулке. А именинница - Настя, была настоящей звездой класса. На несколько лет старше, с великолепными руками и слухом, тургеневская девушка, точнее, девочка. Потом она музыку бросила. Что-то случилось. Слышала, ее затравили однокурсники по училищу. Вполне может быть. Жить через два дома от места учебы - непозволительная роскошь. Да ещё здорово играть при этом…
Квартира была на первом этаже. Мы узнали место не по адресу, а по невероятно вкусному запаху Торта, который распространялся из окон на весь переулок. Но внутри нас ждал сюрприз: «Фантастическая Симфония» Берлиоза, которую мы покорно прослушали перед началом Дня Рождения. Для тех, кто не знает - это минут 50.
С тех пор моя младшая сестра ненавидит Берлиоза.
Так что товарищ Берлиоз трагически погиб не только благодаря Аннушке, разлившей неподалёку от нас подсолнечное масло (на Патриарших в «Мастере и Маргарите» Булгакова), но и из-за Торта, который детям не дали съесть раньше, чем они послушали бессмертную Симфонию.
На фото:
Композитор Гектор Берлиоз
Режиссёр Отар Иоселиани
Писатель Михаил Булгаков
#music
#cinematicphotography
#Berlioz
#Otar Ioseliani
My Telegram: https://t.me/ninonotovna