Что делать если нужно поставить какую-то 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
Три преимущества A220 перед Boeing 🇫🇷
Airbus выделяет ключевые преимущества A220:
⏺Принципиально новая конструкция
В отличие от Boeing 737MAX, созданного на базе существующей модели, A220 позволяет интегрировать все современные инновации в аэродинамике, материалах и авионике.
Самолет оснащен двигателями PW1500G, композитными крыльями и алюминиево-литиевым фюзеляжем, что делает его тихим и экологичным.
⏺Повышенный комфорт и эффективность
Вместимость 100-160 пассажиров с более широкими креслами и панорамными окнами.
Эксплуатационные расходы на место уменьшились на 25% по сравнению с самолетами предыдущего поколения, что обеспечивает авиакомпаниям лучшую прибыльность.
⏺Универсальность маршрутной сети
Благодаря сочетанию экономичности и дальности полета A220 может выполнять как региональные, так и межконтинентальные рейсы, открывая ранее невыгодные маршруты.
📌Будущее A220: планы и вызовы
Планируется создание A220-500 - удлиненной версии, запланированной на начало 2030-х годов как прямой конкурент Boeing 737-800 и 737 MAX8. Многие авиакомпании уже проявляют интерес к версии большей вместимости.
Однако успех зависит от решенияпроизводственных проблемс компонентами самолета - пилонами, системами, креплениями крыло-стойка, обтекателями и секциями фюзеляжа.
Airbus уже завоевал 55% рынка малых авиалайнеров: заказано 941 самолет A220, поставлено 435.
Лёгкое небо
#aviation#A220#B737max
💙 Акции Boeing упали на 15% за месяц из-за новых проблем с качеством
📌Акции Boeing непрерывно снижаются со второй половины января, когда достигли двухлетних максимумов
🔵За последний месяц падение превысило 15%, на этой неделе продажи ускорились. Причина – выявленная проблема с электропроводкой на 737 MAX, требующая доработки самолётов перед передачей заказчикам
🔵Пару дней назад акции обвалились на 4,36%, вчера частично отскочили на 2%. Инвесторы болезненно реагируют на любые факторы, способные замедлить поставки и денежный поток. Boeing заверяет, что проблема не повлияет на планы поставок 737 MAX в 2026 году, однако неопределённость продолжает давить на котировки
⬅️Как думаете, сможет ли Boeing восстановить доверие рынка?
Лёгкое небо
#aviation#news#Boeing#B737max
⚙️ FAA расследует проблему загрязнённого воздуха в Boeing 737 MAX.
На рейсах Southwest Airlines дважды зафиксировали появление дыма в кабине Boeing 737 MAX после попадания птиц в двигатели LEAP-1B. В результате Федеральное управление гражданской авиации (FAA) инициировало проверку системы кондиционирования воздуха этих самолётов.
💡 Специалисты рекомендовали внести изменения в систему отбора воздуха от двигателей, чтобы исключить возможность попадания загрязнённого воздуха в салон при повреждении двигателя.
Boeing и CFM International уже начали детальный анализ ситуации и работают над поиском решений.
Обеспечение безопасности и комфорта пассажиров остаётся приоритетом для всех участников расследования.
Лёгкое небо
#FAA#B737max#aviation#legkoenebo
🇰🇿Количество самолетов Boeing 737MAX у казахстанской SCAT выросло до 12
📌Частная казахстанская авиакомпания SCAT Airlines пополнила свой парк новым Boeing 737MAX-8. Таким образом, количество самолётов последнего поколения узкофюзеляжных лайнеров в её авиапарке увеличилось до 12: семь MAX-8 и пять MAX-9.
⏺13 ноября в базовый аэропорт Шымкент прибыло воздушное судно (рег UP-B3746). Этот самолёт был доставлен непосредственно с завода американского производителя в Эверетте.
⏺В настоящее время этот самолёт не совершает коммерческих рейсов, а находится на статической стоянке в рамках #DubaiAirShow. Два года назад авиакомпания разместила здесь заказ на дополнительные воздушные суда этого типа.
Лёгкое небо
#DAS25#Scat#B737MAX