Что делать если нужно поставить какую-то 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
Почему у двигателей Boeing 777X такой большой диаметр?
Уверен, что многое задавались вопросом, почему GE9X настолько большие? Даже среди авиационных гигантов 777X выделяется благодаря своим GE9X - крупнейшим коммерческим авиадвигателям из когда-либо созданных.
📌У 777X такие большие двигатели, потому что самолету требуется мощная, экономичная и надежная силовая установка для поддержки его размеров и дальности при соблюдении современных стандартов эффективности и шума.
GE9X - самый мощный сертифицированный коммерческий двигатель. Диаметр вентилятора составляет 3,4 метра (с гондолой 4 метра), что шире фюзеляжа Boeing 737! Степень двухконтурности 10:1 и тяга до 110 000 фунтов позволяют 😎 выполнять дальнемагистральные полеты с максимальной эффективностью.
🔠777X имеет максимальную взлетную массу свыше 775 000 фунтов. Для подъема такой массы на маршрутах вроде Дубай - Лос-Анджелес требуется огромная тяга, поэтому столько огромные двигатели обеспечивают
⏺Необходимую тягу свыше 100 000 фунтов
⏺Высокую топливную эффективность благодаря степени двухконтурности 10:1
⏺Сниженный шум за счет медленного вращения большого вентилятора
⏺На 10% меньший расход топлива по сравнению с предшественником
💬Двигатель использует передовые технологии: керамические композиты, 3D-печатные детали и композитные лопасти, что снижает вес при увеличенной прочности.
⬅️ Огромный размер GE9X отражает потребности в дальнемагистральном самолете, соответствующем экологическим стандартам 21 века. Эти массивные двигатели символизируют прогресс авиационной инженерии в стремлении к более чистым, тихим и дальним полетам.
Лёгкое небо
#aviation#777X#GE9X
😎Boeing 777X — широкофюзеляжный двухдвигательный пассажирский самолёт производства корпорации «Боинг» (Boeing), спроектированный на основе Boeing 777
Первый полет состоялся 25 января 2020 года
✈️Композитное крыло со складывающимися законцовками. Длина складных законцовок — 3,5 м, они имеют электропривод складывания.
✈️Увеличенная ширина салона благодаря более тонким стенам кабины и улучшенной изоляции, что позволяет использовать сиденья шириной 46 см.
✈️Двигатели General Electric GE9X. У двигателя увеличенный диаметр вентилятора (340 см против 310 и 330 см у разных версий GE90) и большая степень двухконтурности (10 против 9).
⏺Варианты:
Программа 777X была запущена в ноябре 2013 года для разработки двух вариантов:
➡️777-8 — вместимость 384 пассажира, дальность полёта — 16 170 км.
➡️777-9 — 426 пассажиров, дальность — 13 500 км.
❓Испытания:
В августе 2024 года лётные испытания самолёта 777X были приостановлены после обнаружения проблем с тяговыми рычагами управления двигателем GE9X. 16 января 2025 года Boeing возобновил испытания.
По состоянию на октябрь 2025 года Boeing ожидает, что первый самолёт будет поставлен в 2027 году.
🧳По состоянию на октябрь 2025 года на пассажирскую и грузовую версии 777X поступило 565 заказов от 12 заказчиков.
📍В ноябре 2025 года авиакомпания Emirates разместила заказ на 65 дополнительных самолётов Boeing 777-9 стоимостью 38 млрд долларов. Авиакомпания рассчитывает получить первые самолёты 777-9 во втором квартале 2027 года.
Лёгкое Небо
#boeing#777x#news#emirates
🇦🇪 Emirates заказала дополнительные 65 Boeing 777X на 38 миллиардов долларов
#DubaiAirShowстартовал, и Emirates анонсировала крупнейший заказ на самолёты Boeing за последние годы, подписав контракт на 65 дополнительных Boeing 777-9 на сумму 38 млрд долларов.
📌С учётом нового соглашения общее количество заказанных Emirates самолётов Boeing достигло 315 самолётов (из них на модель 777X приходится 280 единиц).
⏺Для Emirates это часть долгосрочной стратегии обновления флота и синхронизации с программами развития Дубая.
⏺Также заказано 130 дополнительных GE9X, их общее количество достигло 540 штук. Это делает Emirates крупнейшим покупателем силовых установок GE для семейства 777X.
⏺Emirates остаётся крупнейшим оператором Boeing 777 в мире: в её флоте сейчас находится 119 Boeing 777-300ER, 10 Boeing 777-200LR и 11 грузовых Boeing 777.
Лёгкое небо
#aviation#DAS25#777X#Emirates
На #DubaiAirShow2025 Boeing выбивается в лидеры
📌Как многие и предполагали ещё до открытия Dubai Airshow 2025, выставка стала очередным местом напряжённой конкуренции между Boeing и Airbus.
⏺Однако никто не ожидал, что Boeing сразу вырвется вперёд, опередив на старте своего европейского конкурента, который, как считалось, был фаворитом на #DAS25
⏺В первый же день салона произошло неожиданное событие: Emirates объявила о заказе 65 дополнительных 777X на общую сумму 38 миллиардов долларов.
С учётом этого заказа общий портфель Emirates у Boeing составляет 315 широкофюзеляжных самолётов. В него входят 270 Boeing 777X, 10 грузовых 777F и 35 единиц 787.
Лёгкое небо
#Airbus#Boeing#777X#A350#Emirates