Что делать если нужно поставить какую-то 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
ВИЧ. Интересные даты и факты.
#вич#здоровье#hiv
Часто встречается мнение, что история ВИЧ-инфекции начинается в 1980х годах. Однако так ли это было на самом деле?
Действительно, в 1981 году в Morbidity and Mortality Weekly Report (США) появилось 3 статьи о смерти молодых мужчин от пневмоцистной пневмонии и саркомы Капоши. После этого в ходе ряда исследований была подтверждена вирусная природа инфекции и выделен сам вирус (84-85г). Однако по сути история инфекции началась сильно раньше:
🔘 1908г вирус иммунодефицита обезьян 🐒 мутировал в вирус иммунодефицита человека.
🔘 Сейчас выделяют ВИЧ-1 и ВИЧ-2. Первый произошел от шимпанзе, второй - от черных мангобеев. Первые случаи инфицирования произошли а районе реки Конго в результате поедания мяса обезьянок.
🔘 В 1920х годах несколько семей эмигрируют из района реки Конго на Гаити, где и происходит первый случай передачи вируса от человека к человеку.
🔘 1950е - Несколько человек из Гаити переехали в США.
🔘 1953г - в США умерли два подростка от атипичной пневмонии. Их кровь была заморожена. В 2010г ее разморозили и протестировали на ВИЧ. Оба мальчика оказались ВИЧ+.
🔵 На данный момент вирус иммунодефицита обезьян SIV продолжает мутировать.
⚫️ ВИЧ передается только от человека к человеку. Помимо вируса иммунодефицита человека есть ещё ВИ рогатого скота, собак, кошек 🐮🐶🙀 Они безвредны для человека.
🔴 На данный момент на Филлипинах возник новый штамм ВИЧ, очень быстро приводящий к стадии СПИДА
✅ Спасибо, очень интересно.
🅾 Специфическая тема, не хотим такого больше
"#HIV has never been isolated."
Unseen Channel 4 News report from 1998, suppressed due to flaws resembling those of the #COVID narrative, thus enabling the #AIDS psy-op to proceed.
https://www.bitchute.com/video/J4HUyN43AuMQ/
This year, scientists found a way to control HIV without daily medicine. They used special lab-made antibodies in two tests. Some people stayed healthy without HIV drugs long after the treatment stopped. This shows it might be possible to live with HIV without taking pills every day.
💉🦠
[Source]
@googlefactss#HIV#Science#Health#Hope
Norway Man Cured of HIV With Brother’s Stem Cells | The Oslo patient is the first person to be cured by a family member's bone marrow transplant.
[Read FullArticle]
@WorldNews#HIV#HIVCure#StemCellTransplant
И еще несколько ответов на частые вопросы про ВИЧ и безопасный секс:
#hiv#ВИЧ#презервативы#здоровье#безопасныйсекс
1. Что показывает тест?
На данный момент в Украине пункты тестирования (а теперь уже и некоторые семейные врачи) оборудованы быстрыми тестами 3го поколения. Они показывают наличие антител к ВИЧ по крови (есть еще по слюне, но лучше по крови).
2. Через какое время после инфицирования тест покажет положительный результат? Т.е. каков период окна?
Тесты 3-го поколения показывают результат уже через 6-12 недель (3 мес). Раньше говорили о периоде окна 3-6 мес, теперь он, как видите, 2-3 мес.
Т.е. если через 3 и больше месяцев после контакта тест отрицателен - инфицирование не произошло.
Тесты 4-го поколения еще более точны - там достаточно 14 дней, но их пока у нас нет.
3. Можно ли купить тест в аптеке/интернете и сделать самому?
Можно. Но не нужно. Дело в том, что тесты не продают с детальными инструкциями, проводить тест необходимо уметь (там есть детали), прочитать результат тоже необходимо уметь, без этих знаний велик риск получить недостоверный результат (в случае ложноположительного куча нервов, в случае ложноотрициательного - формирование уверенности, что "все безопасно" и, в результате, инфицирование других).
Вот вам ниже фоточка: вместо крови мы добавили БонАкву, сделали 2 теста. Оба теста показывают негативный результат. А вовсе не "никакого"!
Это говорит о том, что неправильное количество крови или попадание других жидкостей - вот вам и ложный "негатив".
Серьезно, не надо делать тесты самим, тем более, они бесплатны в пунктах тестирования.
4. И мое любимое - почему я советую использовать презерватив всегда?
Потому, что 76% новых инфицирований в Украине - это НЕЗАЩИЩЕННЫЙ КОНТАКТ. Нет, не игла. Не переливание. Контакт. Не важно, гетеро или гомо. И эти проценты продолжают расти.
Можно сколько угодно говорить об этичности, процессинге, о том, что "я все знаю о своих партнерах" - только вот все эти люди...они тоже так думали.
Да, поли-отношения более открыты, я согласен. Однако моя позиция состоит в том, что мое здоровье у меня одно, и от вируса не защищают чувства, доверие (это, извините, но абстракция), мораль, вера и не/традиционные ценности.
От него защищает презерватив. Для меня это достаточный аргумент.
__P.S. если вы все же хотите услышать ответ на вопрос "у нас больше никого нет, мы только вдвоем, период окна прошел, зачем нам презерватив", то ответ - да, да, не нужен. Проверяйтесь раз в полгода/год.
Но если что - я предупреждал.__
Хотите еще 1-2 поста на эту тему?
✅ - да, пожалуйста
🅾 - нет, спасибо.