Что делать если нужно поставить какую-то 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
В Липецкой области сотрудникам бюджетных учреждений рекомендовали пройти на портале «Госуслуги» опрос об осенних довыборах в Госдуму. Помимо осведомленности о факте голосования и желания в нем поучаствовать у граждан интересуются, за кого из кандидатов они намерены голосовать. В избиркоме говорят, что опрос не нарушает закон, а в Минцифры уверяют, что доступа к персональным данным его заказчики не получат, — Коммерсант. #briefly
На российском рынке возникает дефицит полуприцепов-рефрижераторов для автотранспорта, в которых возят продукты питания, лекарства и другие товары, требующие низких температурных режимов. По оценкам, рынок прицепов-рефрижераторов в России в докризисное время достигал 4000 шт. в год. Россия была крупнейшим рынком Европы по продаже полуприцепов и занимала 15% в регионе EMEA (Европа, Ближний Восток, Африка). Но после введения антироссийских санкций весной 2022 г. объем импорта техники стал снижаться, – Ведомости. #briefly
EUreporter: После начала СВО официальные лица США и НАТО подчеркнули важность защиты Западных Балкан от российского вмешательства и пагубного влияния. Россия использует свои энергетические и природные ресурсы в качестве геополитического инструмента, одновременно поддерживая правые политические партии и ультраправые группы в регионе. Сербия является ближайшим европейским союзником России, а в Черногории, напротив, в 2016 году произошла попытка переворота при поддержке РФ. Как выяснилось потом, попавший под санкции российский олигарх расширял свое влияние в стране от имени Кремля. Албания и Северная Македония были менее уязвимы для российского вмешательства из-за их ограниченной зависимости от российских энергоносителей и отсутствия культурных связей. Однако Россия пытается оказывать злонамеренное влияние на эти страны с помощью различных средств, таких как финансирование оппозиционных партий и нападения на сотрудников служб безопасности и политических деятелей. Имеются доказательства того, что российские бизнесмены, связанные с Кремлем, осуществляли платежи жене бывшего президента Албании. В Северной Македонии российские агенты пытались завербовать бывших и действующих военных и сотрудников министерства внутренних дел для продвижения российских интересов. #briefly@briefsmi
Ведомости: Россиянам предложили дать возможность ежегодно оценивать депутатов всех уровней, мэров и губернаторов (для них существует правительственная система KPI) с помощью портала «Госуслуги». Такой законопроект в среду, 15 марта, планирует внести в Госдуму фракция «Новые люди». Депутаты предлагают внести поправки в закон о статусе сенатора и депутата Госдумы, в закон об общих принципах организации публичной власти в субъектах и в закон о местном самоуправлении. #briefly
#briefly
О чем говорил Токаев в Жетысу с общественностью и что пообещал? Рассказываем👇
- Объяснил, почему появился новый регион: чтобы повысить эффективность работы местных органов управления;
- Велел провести геологоразведку области, ибо ее недра могут хранить от 50-100 тысяч тонн лития. Для их разработки нужны инвестиции;
- Поручил интегрировать Е-очереди на погранпунктах «Алаколь» и «Нұр жолы», для разгрузки грузового авто;
- Заявил о создании лаборатории, аккредитованной по стандартам Китая. Она увеличит экспорт в КНР;
- Поручил срочно запустить Аксуский сахарный завод. И привлечь других инвесторов, если нужно;
- Порекомендовал изучить голландский опыт: с территорией в 3 раза меньше, чем Жетысу, войти в топ-3 мировых экспортеров агропромышленной продукции;
- Считает, что стандарты «халал» пора внедрять в отечественном агропроме и на зерновые, овощи, фрукты и прочую снедь.
#планы
- Построить газопровод «Талдыкорган – Ушарал», он обеспечит 3 района голубым топливом, где живут 150 тыс. человек;
- Отреставрировать 15 аварийных мостов в регионе;
- Проложить дорогу к самому высокому водопаду «Бурхан Булак» в Центральной Азии;
- Достроить +3 новые школы к тем 12-ти, что уже строятся;
- Создать филиал крупного зарубежного технологического вуза;
- Построить модульные комплексы под медпункты в 40 сёлах до 2024 г.;
- Возвести лыжно-биатлонный комплекс для подготовки чемпионов и роста тур-привлекательности области.
@sluhmaker
😊 These two adverbs seem similar, but they’re quite different! 💡 Here’s a quick tip from Sian! 🤓 Now, complete the sentence:
George only came in _____ to pick up his jacket - he’d left it here yesterday.
1. briefly
2. shortly
🤔 Want to learn more? 🤩 Here’s a useful lesson on adverbs. Link in bio.
#learnenglish#englishtips#ELT#ielts#grammar#adverbs#briefly#shortly#confusingwords