Что делать если нужно поставить какую-то 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íaDoMayor#Bizet#BernhardHaitink
Título:La Sinfonía en Do mayor
Autor:Georges Bizet
Movimientos:
🎵 00:00 I. Allegro vivo
🎵10:52 II. Andante. Adagio
🎵 20:26 III. Allegro vivace
🎵 25:55 IV. Finale. Allegro vivace
Interpretación:
La Orquesta Real del Concertgebouw
Director:
Bernhard Haitink
Fuente: 🎼
@ClasicaAlAtardecer
#SinfoníaDoMayor#Bizet#BernhardHaitink
LA SINFONÍA EN DO MAYOR.
La Sinfonía en do mayor es uno de los primeros trabajos del compositor francés Georges Bizet. De acuerdo al Diccionario de Grove, la sinfonía "revela un logrado talento extraordinario para un estudiante de 17 años de edad, en invención melódica, manejo temático y orquestación." Bizet comenzó a trabajar en la sinfonía el 29 de octubre de 1855, cuatro días después de cumplir los 17, y la finalizó más o menos un es después. Fue escrita mientras estudiaba en el Conservatorio de París bajo la tutela del compositor Charles Gounod, y era obviamente una tarea estudiantil.
Bizet no mostró interés aparente en que fuese ejecutada o publicada, y aunque utilizó algún material de la sinfonía en trabajos posteriores, la pieza jamás fue ejecutada en toda su vida. No existe mención de este trabajo en las cartas de Bizet, y era desconocida para sus primeros biógrafos. Su viuda, Geneviève Halévy (1849–1926), dio el manuscrito a Reynaldo Hahn, quien lo dejó junto a otros documentos en los archivos de la librería del conservatorio, donde fue encontrado en 1933 por Jean Chantavoine. Poco tiempo después, el primer biógrafo Inglés de Bizet, Douglas Charles Parker (1885–1970) mostró el manuscrito al director de orquesta Felix von Weingartner, quien hizo la primera presentación en Basel, Suiza, el 26 de febrero de 1935.
La sinfonía fue inmediatamente aclamada como una obras maestra juvenil, comparable a la obertura El sueño de una noche de verano de Felix Mendelssohn, escrita más o menos a la misma edad, y rápidamente se convirtió en parte del repertorio Romántico habitual. La primera grabación fue hecha el 26 de noviembre de 1937, por la Orquesta Filarmónica de Londres, dirigida por Walter Goehr.
Escrito para una orquesta convencional (sin trombones), el trabajo sigue muy de cerca la forma sinfónica clásica de cuatro movimientos. El primero y el último movimiento están en forma de sonata.
Consta de cuatro movimientos:
🎵I. Allegro vivo
🎵II. Andante. Adagio
🎵III. Allegro vivace
🎵IV. Finale. Allegro vivace
Existe una extendida suposición de que la sinfonía fue una tarea estudiantil, escrita hacia el final de los nueve años de estudio que realizó Bizet en el Conservatorio de París. En el conservatorio, Bizet fue influenciado de gran manera por Charles Gounod,tuvo un fuerte impacto en el joven compositor.
@ClasicaAlAtardecer
#SinfoníaDoMayor#Bizet#BernhardHaitink
Título:La Sinfonía en Do mayor
Autor:Georges Bizet
Movimientos:
🎵 00:00 I. Allegro vivo
🎵10:52 II. Andante. Adagio
🎵 20:26 III. Allegro vivace
🎵 25:55 IV. Finale. Allegro vivace
Interpretación:
La Orquesta Real del Concertgebouw
Director:
Bernhard Haitink
Fuente: 🎼
@ClasicaAlAtardecer
#SinfoníaDoMayor#Bizet#BernhardHaitink
LA SINFONÍA EN DO MAYOR.
La Sinfonía en do mayor es uno de los primeros trabajos del compositor francés Georges Bizet. De acuerdo al Diccionario de Grove, la sinfonía "revela un logrado talento extraordinario para un estudiante de 17 años de edad, en invención melódica, manejo temático y orquestación." Bizet comenzó a trabajar en la sinfonía el 29 de octubre de 1855, cuatro días después de cumplir los 17, y la finalizó más o menos un es después. Fue escrita mientras estudiaba en el Conservatorio de París bajo la tutela del compositor Charles Gounod, y era obviamente una tarea estudiantil.
Bizet no mostró interés aparente en que fuese ejecutada o publicada, y aunque utilizó algún material de la sinfonía en trabajos posteriores, la pieza jamás fue ejecutada en toda su vida. No existe mención de este trabajo en las cartas de Bizet, y era desconocida para sus primeros biógrafos. Su viuda, Geneviève Halévy (1849–1926), dio el manuscrito a Reynaldo Hahn, quien lo dejó junto a otros documentos en los archivos de la librería del conservatorio, donde fue encontrado en 1933 por Jean Chantavoine. Poco tiempo después, el primer biógrafo Inglés de Bizet, Douglas Charles Parker (1885–1970) mostró el manuscrito al director de orquesta Felix von Weingartner, quien hizo la primera presentación en Basel, Suiza, el 26 de febrero de 1935.
La sinfonía fue inmediatamente aclamada como una obras maestra juvenil, comparable a la obertura El sueño de una noche de verano de Felix Mendelssohn, escrita más o menos a la misma edad, y rápidamente se convirtió en parte del repertorio Romántico habitual. La primera grabación fue hecha el 26 de noviembre de 1937, por la Orquesta Filarmónica de Londres, dirigida por Walter Goehr.
Escrito para una orquesta convencional (sin trombones), el trabajo sigue muy de cerca la forma sinfónica clásica de cuatro movimientos. El primero y el último movimiento están en forma de sonata.
Consta de cuatro movimientos:
🎵I. Allegro vivo
🎵II. Andante. Adagio
🎵III. Allegro vivace
🎵IV. Finale. Allegro vivace
Existe una extendida suposición de que la sinfonía fue una tarea estudiantil, escrita hacia el final de los nueve años de estudio que realizó Bizet en el Conservatorio de París. En el conservatorio, Bizet fue influenciado de gran manera por Charles Gounod,tuvo un fuerte impacto en el joven compositor.
@ClasicaAlAtardecer