Что делать если нужно поставить какую-то 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
Наше мнение о катастрофе индийского LCA Tejas
📌Разумеется, точную причину авиакатастрофы установит специальная комиссия. Но почему бы диванным экспертам не поразмышлять
👀
⏺Если исключить возможность внезапного отказа системы или управления самолётом, наиболее вероятной причиной крушения можно считать ошибку пилота, допущенную при бочки на малой высоте.
⏺Это вторая по распространённости причина катастроф, связанных с выполнением фигур высшего пилотажа. Чаще всего они происходят после выполнения мёртвой петли или полубочки без достаточного запаса высоты.
⏺На кадрах катастрофы видно, как самолёт, «стоя на правом крыле», продолжает закручиваться в правую сторону и входит в нисходящую спираль, теряя высоту. В результате он ударяется о землю и взрывается.
Вот почему в учебниках по пилотированию настоятельно рекомендуется выполнять такие фигуры на малой высоте, с положительным тангажом и на высокой скорости. Это позволит самолёту сохранить высоту и избежать штопора.
Однако в истории авиации есть много подобных трагедий, которые, к сожалению, повторяются с пугающей частотой.
Лёгкое небо
#aircrash#DAS25#aviation#aviation
Красота с #DAS25
📌Всё верно, у админа появилось время обработать старые архивы
⬅️А есть ли у вас, дорогие подписчики, красивые материалы с Авиашоу?
Лёгкое небо
#aviation#DubaiAirShow2025
#DubaiAirShow2025
Итоги первого дня
⏺Emirates объявила о намерении приобрести 65 самолётов Boeing 777.
⏺flydubai заключила предварительное соглашение о приобретении 150 самолётов Airbus A321neo.
⏺Air Senegal и Boeing подписали соглашение о поставке восьми самолётов Boeing 737 MAX 8. Подписание состоялось в присутствии министра наземного и воздушного транспорта Сенегала Янкобы Диеме и старшего вице-президента Boeing по коммерческим продажам и маркетингу Брэда Макмаллена.
⏺Gulf Air заключила официальное соглашение с Boeing о поставке от 12 до 15 самолётов Boeing 787 Dreamliner. Это станет ещё одним шагом к расширению её дальнемагистрального флота.
⏺Количество самолётов Boeing 737MAX, принадлежащих казахстанской авиакомпании SCAT, увеличилось до 12. В следующем году авиакомпания планирует приобрести два Boeing 737 MAX-8, в 2027 году — по два MAX-8 и MAX-9, а в 2028 году — пять MAX-9.
Лёгкое небо
#aviation#DAS25#Boeing
Нельзя не отметить полёт #A350-1000
📌Почти вертикальный взлёт и критические углы атаки сделали своё дело
У кого-то появятся новые обои 🔥
Лёгкое небо
#aviation#DubaiAirShow#DAS25
✈️В Дубае на авиашоу разбился самолет, — СМИ.
ЧП произошло на авиашоу в Дубае, предположительно, разбился самолет, пишут СМИ.
По предварительной информации, это индийский истребитель Tejas.
UPD: Пилот погиб. Полёты продолжаются
Лёгкое небо
#DAS25#dubai#DubaiAirShow2025#aviation
🇦🇪 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
Авиакомпания Etihad Airways сделала один из самых необычных заказов самолётов в прошедшем году 😲
На авиасалоне Dubai Airshow авиакомпания заказала 15 Airbus A330neo. Это выглядело неожиданно, ведь в 2020 году Etihad отказались от семейства A330 в пользу Boeing 787 ❌
При этом авиакомпания удовлетворена Dreamliner-ами: в планах поступление в флот ещё не менее 70 самолётов этого типа. Тем не менее Etihad решила вернуться к A330 по двум причинам
✨
🔵Первая и главная прична - сроки. Первые A330neo авиакомпания получит уже в 2027 году. На фоне проблем с поставками новых широкофюзеляжных самолётов это очень кроткие сроки. При загрузке рейсов около 85-95% Etihad нуждается в дополнительных лайнерах.
🔵Вторая причина - изменение стратегии. Раньше Etihad стремилась создать крупный хаб в Абу-Даби и конкурировать с Дубаем. Сейчас компания сосредоточена на устойчивом региональном росте. Для ближних и средних магистральных маршрутов A330neo оказывается более экономичным решением.
В итоге заказ выглядит нелогичным лишь на первый взгляд, в рамках новой стратегии а330neo подходит практически идеально 🇫🇷
Лёгкое небо
#aviation#news#airbus#boeing#DubaiAirShow2025#DAS25
🇰🇿Количество самолетов Boeing 737MAX у казахстанской SCAT выросло до 12
📌Частная казахстанская авиакомпания SCAT Airlines пополнила свой парк новым Boeing 737MAX-8. Таким образом, количество самолётов последнего поколения узкофюзеляжных лайнеров в её авиапарке увеличилось до 12: семь MAX-8 и пять MAX-9.
⏺13 ноября в базовый аэропорт Шымкент прибыло воздушное судно (рег UP-B3746). Этот самолёт был доставлен непосредственно с завода американского производителя в Эверетте.
⏺В настоящее время этот самолёт не совершает коммерческих рейсов, а находится на статической стоянке в рамках #DubaiAirShow. Два года назад авиакомпания разместила здесь заказ на дополнительные воздушные суда этого типа.
Лёгкое небо
#DAS25#Scat#B737MAX
Airbus A350F 🇫🇷
🇷🇺Этот пост я пишу на английском языке в знак благодарности сотруднику Airbus A350F на #DAS25
🇬🇧I am writing this post in English as a sign of gratitude to the Airbus employee who told me about the A350F at the #DubaiAirShow2025
📌The Airbus A350F is a new benchmark in cargo aviation, created to replace classic wide-body freighters like the Boeing 747. With a 111-ton payload, it stands among the leaders of the market while being far more efficient than the legendary Jumbo.
⏺The first A350F was rolled out previous Tuesday, officially launching the program and moving it from the anticipation stage into real production.
⏺The A350F has become the freighter that combines efficiency, smart engineering and the ability to transport virtually anything, setting a new standard for the entire industry.
⏺The key to its efficiency is the carbon-fiber fuselage, which makes the aircraft significantly lighter. Alongside this, it is powered by ultra-modern engines that consume 40% less fuel than those on the 747, making the A350F one of the most efficient cargo aircraft ever built.
⏺The A350F features the largest cargo door of any aircraft — 4.3 meters wide. This allows it to load almost any oversized cargo. In fact, the A350F can carry everything from heavy industrial equipment to live animals.
⏺For animal transport, it is equipped with a modern ventilation system similar to the one used on regular passenger flights, making such journeys much safer and more comfortable.
⏺Engineers paid special attention to the central fuselage section. In the area where the wings attach, the A350F can accommodate an additional 28 tons of cargo while maintaining optimal balance and controllability.
⏺Another unique feature is its maneuverability during loading. While other cargo aircraft typically require up to 27 turns, the A350F manages with just one, greatly simplifying loading operations and the crew’s workflow.
📌
Airbus A350F
— это новый ориентир для грузовой авиации, созданный чтобы заменить классические широкофюзеляжные грузовики вроде Boeing 747. При загрузке в
111 тонн
он входит в лидеры рынка и при этом делает это намного эффективнее, чем легендарный «джамбо».
⏺
Первый экземпляр A350F был выпущен во вторник на прошлой неделе, что делает программу реально стартовавшей и переводит её из стадии ожидания в стадию производства.
⏺
A350F стал тем грузовым лайнером, который объединяет экономичность, продуманную конструкцию и способность перевозить что угодно, задавая новый уровень всей индустрии.
⏺
Ключ к эффективности —
карбоновый фюзеляж
, который делает самолёт значительно легче. Вместе с этим идут ультрасовременные двигатели, расходующие
на 40% меньше топлива
, чем у 747, что превращает A350F в один из самых эффективных грузовых лайнеров в истории.
⏺
A350F получил
самую большую грузовую дверь среди всех самолётов — 4,3 метра в ширину
. Благодаря этому он может брать на борт практически любой нестандартный груз. Фактически A350F способен перевозить всё: от крупногабаритной техники до живых братьев наших меньших.
⏺
Для перевозки животных предусмотрена
современная система вентиляции
, аналогичная той, что используется на регулярных пассажирских рейсах, что делает такие перелёты намного более безопасными и комфортными.
⏺
Инженеры уделили особое внимание центральной секции фюзеляжа. Именно там, в районе крепления крыла, A350F способен разместить
дополнительно 28 тонн груза
, сохраняя оптимальную центровку и управляемость.
⏺
Ещё одна уникальная особенность — манёвренность при погрузке груза. В то время как другим грузовым самолётам обычно требуется до
27 поворотов
, A350F обходится
одним
, что значительно упрощает загрузку и работу экипажа.
Лёгкое небо
#aviation#DubaiAirShow2025#DAS25#A350F#Airbus