Что делать если нужно поставить какую-то 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
#ALPACA/USDT analysis :
#ALPACA is currently in an uptrend, demonstrating a series of higher highs (HHs) and higher lows (HLs). The price is currently consolidating above the 200-period exponential moving average (EMA), and a bounce is expected, which would reinforce its bullish momentum. For a long entry, it is recommended to wait for a breakout above the $0.1780 level to confirm the upward movement.
TF : 4h
Entry : $0.1780
Target : $0.2300
SL : $0.1520
#ALPACA result
3 nd target achieved in just 12 days✅
One more huge quick profit 46%🤑💰🤑
👉 Still thinking? The more you wait more you lose profit
☎️ Contact @MichaelStrategiesVip for membership and grab next breakout signal
#ALPACA result
1st target achieved in just 14 minutes ✅
One more huge quick profit 4.5%🤑💰🤑
👉 Still thinking? The more you wait more you lose profit
☎️ Contact @MichaelStrategiesVip for membership and grab next breakout signal
More thoughts on spinning.
I hope you'll indulge me with this detour/personal journey of mine.
Processing and spinning wool seems an unnecessary and tedious task when there is everything else to worry about. However, some animals, like sheep, can be dual purpose. Why not learn to utilize what else they have to offer?
For some of us, the fiber is so worthwhile that we'd keep animals just for that purpose alone! (Hence my alpaca obsession - plus they are cheap therapy!)
The reason why I'm starting to love spinning is because it is a mindful, yet mindless task that you can simply pick up and tend to without thought. Just feeling, stretching, twirling.
With knitting, you must actively think. Processing and spinning fiber is a perfect complement to the art, a duty to put thoughts to rest and focus only on how the fiber feels.
It's not about getting it done quickly, it's not about profit. It's about enjoying your time and feeling empowered in what you're able to create with your own hands.
#spinning#alpaca
Elaborating on the Removal of Vegetable Matter (specifically when there's a lot of it)
And thoughts on your environment's impact on how dirty your fleece gets
#spinning#alpaca
How things are going.
This is a Golding top whorl drop spindle. They kindly sent me some kind of hideous fiber to experiment with, which I gladly did, although I found it awful to work with. Probably not the best intro to spinning.
I skirted and clouded a small portion of Obsidian's fleece to see how it does in comparison. My hand carders are still sitting in my PO box, so I still have to wait for that - it makes the fluffing easier. No wash, just taking bits of vegetable matter out, and I gotta tell ya, it is really messy. Fluffing and picking seemed to get a lot of dust out, so spinning isn't that dirty, actually. It may even be giving it more grip.
It is far easier to spin that I expected. People say alpaca is not a good wool to start with because it's too slippery, but I found it extremely easy to draft and spin evenly. It may have something to do with the generous 3" of staple length.
I will try to record a short video of the skirting process tomorrow.
Still new, but learning.
#spinning#alpaca