Что делать если нужно поставить какую-то 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
💥DAS SOLLTE JEDER SEHEN UND HÖREN💥
Der frühere Direktor der US-Zentren für Seuchenschutz und -prävention (#CDC), Dr. Robert Redfield sagt:
Die COVID-Impfung hätte nicht als Impfstoff bezeichnet werden dürfen sondern als Medikament, da es die die Infektion nicht stoppt!
🦅#TEAMHEIMAT🇩🇪
The Atlantic: федеральные данные США и данные штатов по COVID-19 не совпадают
Коронавирус стал серьёзным испытанием не только для простых граждан, но и отличным тестом эффективности государственных механизмов. В результате мы видим, что даже самые эффективные государства в мире серьёзно "сбоят" перед вызовами подобного масштаба. Например, в США со статистикой вокруг текстов на Covid-19 творится настоящий бардак: штаты дают одни цифры, федеральное правительство - другие, и местами они отличаются друг от друга на десятки процентов. А ведь количество тестов необходимо для того, чтобы понять масштаб заражения, уровень смертности, и, соответственно необходимые действия в том или ином направлении. В результате журналистам, учёным и даже некоторым политикам приходится полагаться на негосударственный проект, возможности которого очевидно ниже, чем у федерального правительства.
«Анализ данных CDC на уровне штатов обнаруживает серьезные расхождения между тем, что сообщают многие штаты, и данными федерального правительства. Например, во Флориде эта разница огромна. В пятницу правительство штата сообщило, что с начала вспышки по всему штату было проведено около 700 000 тестов на коронавирус... Тем не менее, по данным CDC за этот же период проведено более чем 919 000 тестов. Это на 31% больше, чем, по мнению представителей самой Флориды. «Если происходит подобное, то представители CDC должны взять трубку и позвонить во Флориду с простым вопросом: «Что происходит?» - считает Ашиш Джа, профессор здравоохранения в Гарварде.
Учитывая сложность и огромное количество источников данных, некоторые неточности, безусловно, объяснимы. Но обнаруженные нами несоответствия свидетельствуют о том, что Флорида не является исключением. В 22 штатах количество тестов CDC отличается от числа, сообщенного правительством штата, более чем на 10 процентов. В 13 штатах расхождение более чем 25 процентов. В некоторых случаях количество тестов, указанных CDC намного выше, чем сообщают штаты; в других гораздо ниже».
https://theidealist.ru/cdcdata/
#TheAtlantic#власть#общество#США#статистика#CDC#коронавирус
🏥 Trump Picks a Mainstream Face for the CDC
Donald Trump has formally named Erica Schwartz to lead the CDC. The choice signals a turn away from vaccine politics and toward someone who can look credible to the public after months of turmoil inside the agency.
Schwartz is not coming in to sell a new ideology. She is coming in to clean up a mess. The CDC has been battered by political fights, legal challenges, staff losses, and Kennedy’s unpopular vaccine agenda, and the agency now needs basic authority more than another round of messaging theater.
That is a political reversal, even if the White House will not say it that way. The administration is trying to blunt the damage before the midterms, calm the public-health establishment, and stop the CDC from looking like a culture war machine with a lab coat on.
Schwartz will still have a hard job. She would be taking over an agency where trust has eroded, staff morale is badly damaged, and vaccine policy has become a battlefield instead of a public health tool. The real test is whether she can restore some discipline before the next crisis arrives.
#cdc#trump#health#vaccines#kennedy#publichealth
📱American Оbserver - Stay up to date on all important events
🇺🇸
#java#cdc#chunjun#dataops#datax#etl#flink#flink_streaming#java
TIS is an easy enterprise data integration tool using batch (DataX) and streaming (Flink-CDC, Chunjun) with a simple interface to sync data end-to-end without complex scripts. Its v5.0.0 adds Pipeline AI Agent, letting you describe needs in natural language for auto-pipeline creation, smart plugin installs, and low-cost AI like DeepSeek. Install quickly via single-node, Docker, or K8S. This saves you time, cuts errors, simplifies ETL tasks, and boosts fun, efficient data pipelines for real-time analytics.
https://github.com/datavane/tis