Что делать если нужно поставить какую-то 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
It is 'Telegram Thursday' and I want to recommend you interesting channels.
Today there is a fresh channel, focusing on the Scottish aspect of European culture:
https://t.me/beautiful_scotland
Have a look and follow this channel! It has lots of original content.
#Scottish#TelegramThursday
@EuropeanTribalism
#Ethiopia aid worker tells of daily struggle to find water in land littered with cow skulls
A #Scottish aid worker who recently visited Ethiopia has told of the harrowing daily struggles people face there to get safe water. Ben Wilson of the Scottish Catholic International Aid Fund (#SCIAF), who visited the #African nation last June, told of landscapes devastated by drought and littered with the skulls of dead cattle.
It comes as the charity’s annual Wee Box appeal this Easter focuses on water, with Scots urged to give generously to fund taps and wells in some of the world’s poorest nations. SCIAF is also urging Keir Starmer to reverse his controversial move to slash international aid to 0.3 per cent of national income - the lowest level since 1999 - in order to boost defence spending.
Ben told the Sunday Mail: “Water poverty is still such a huge problem around the world, with hundreds of millions of people.........
https://www.dailyrecord.co.uk/news/scottish-news/ethiopia-aid-worker-tells-daily-36969445
Shovel Dance Collective — The Shovel Dance (American Dreams Records, 2024)
#country#avantfolk#irish#scottish#english#England#Ireland#Scotland#United_Kingdom
Shovel Dance — второй альбом лондонского коллектива Shovel Dance Collective, который занимается изучением и переосмыслением народных традиций Англии, Ирландии и Шотландии. Группа работает без единого лидера, подчеркивая таким образом дух коллективного творчества, присущий фольклорной культуре. В состав входят девять участников, которые в работе над альбомом использовали 25 инструментов, а вокальные партии исполнялись восемью из них.
Альбом опирается на музыкальные источники, датируемые XVII веком и более ранними периодами, органично соединяя их с современными влияниями. Так, в музыке коллектива угадываются отсылки ко многим артистам XX века: Скотту Уокеру, начавшему карьеру как поп-исполнитель в 60-х, но позже экспериментировавшему со звуком и формой; Swans, экспериментальному постпанк-коллективу из Нью-Йорка; Ширли Коллинз, британской фолк-певице и исследовательнице народной музыки; Берту Ллойду, исполнителю и собирателю английских народных песен. Эти цитаты подчёркивают стремление Shovel Dance Collective навести мосты между традиционной музыкой и современными звуковыми решениями, чтобы отразить актуальность фольклора не только через тексты, но и через звучание.
Альбом открывается композицией Abbots Bromley Horn Dance — переосмыслением музыки к древнему английскому праздничному танцу, традиционно исполняемому с оленьими рогами и минимальным аккомпанементом. Группа превращает его в сложное инструментальное произведение, достигающее крещендо, прежде чем перейти к песне The Worms Crept Out времен Первой мировой войны, посвященной размышлениям о смерти.
На протяжении всего альбома музыканты исследуют, как фольклор может отражать социальные и исторические проблемы, актуальные как в прошлом, так и в настоящем. Например, в треке The Four Loom Weaver это проявляется через рассказ о людях, потерявших работу во времена промышленной революции. Хоть с тех пор минуло много лет и мы давно живем в постиндустриальную эпоху, люди продолжают терять работу. Музыканты верят, что старые народные песни могут стать источником утешения и помочь справиться с несовершенствами жизни.
🔗AppleMusic | Spotify | YouTube | Deezer | TIDAL | Napster | Amazon | Bandcamp | Telegram