Что делать если нужно поставить какую-то 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
McLaren — британская гоночная команда с длинной историей успехов, с 90-х годов пробует себя как автопроизводитель. Строит дорожные суперкары.
Недавно англичан купил инвестор из Абу-Даби и объединил их с английским же электромобильным стартапом Forseven. У Forseven в свою очередь соглашение с китайским производителем электричек NIO.
На этом базисе из китайских электротехнологий и арабских денег McLaren собирается в 2028 году выпустить свой первый внедорожник (гибридный), настроенный на конкуренцию с Ferrari Purosangue и Lamborghini Urus.
#mclaren
📰McLaren is preparing a super crossover
ℹ️ McLaren plans to expand its model range with a premium crossover. According to new CEO Nick Collins, the company needs to diversify its lineup beyond two-seater sports cars.
🔋 The company plans to partially electrify its model range with a focus on hybrid technologies. At the same time, the V8 engine will remain in the lineup.
#McLaren#sportscar@Car_News
🏎McLaren W1 flagship hypercar – the successor to the F1 and P1 models – has been unveiled
・The McLaren W1 hybrid powertrain produces 1,275 hp and 1,340 Nm. It includes a 4-liter V8 (929 hp and 900 Nm) and an electric motor with 346 hp. The gearbox is an 8-speed robotics with two clutches.
・Acceleration time to 100 km/h – 2.7 s, acceleration time to 200 km/h – 5.8 s, and to 300 km/h - 12.7 s. The top speed is 350 km/h.
・McLaren W1 weighs only 1399 kg and is equipped with an “active long tail”, which can extend backwards by 300 mm, increasing the working area of the diffuser. The aerodynamic package is capable of generating around a ton of downforce (350 kg at the front and 650 kg at the rear).
・A total of 399 hypercars will be produced, priced from $2.1 million. The entire run of the McLaren W1 is already sold out.
@CarsNews
#McLaren#hypercar#hybrid
📰 McLaren готовит суперкроссовер
ℹ️ McLaren планирует расширить модельный ряд премиальным кроссовером. По словам нового генерального директора Ника Коллинза, компании необходимо диверсифицировать линейку за пределы двухместных спортивных автомобилей.
🔋 Компания планирует частично электрифицировать модельный ряд с акцентом на гибридные технологии. При этом двигатель V8 останется в линейке.
#McLaren#споркар@avtoNovosti
🏎 Обещанная премьера McLaren W1 состоялась
・ Представлен флагманский гиперкар McLaren W1 – преемник моделей F1 и P1. Гибридная силовая установка McLaren W1 развивает 1 275 л.с. и 1 340 Нм. Она включает в себя 4-литровый V8 (929 л.с. и 900 Нм) и электромотор мощностью 346 л.с. Коробка передач – 8-ступенчатый «робот» с двумя сцеплениями.
・Время разгона до 100 км/ч – 2,7 с, время разгона до 200 км/ч – 5,8 с, а до 300 км/ч – 12,7 с. Максимальная скорость – 350 км/ч.
・McLaren W1 весит всего 1399 кг и оснащён «активным длинным хвостом», который может выдвигаться назад на 300 мм, увеличивая рабочую площадь диффузора. Аэродинамический пакет способен генерировать около тонны прижимной силы (350 кг спереди и 650 кг сзади).
・Всего будет выпущено 399 гиперкаров по цене от $2,1 миллиона. Весь тираж McLaren W1 уже распродан.
@avtoNovosti
#McLaren#гиперкар#гибрид
🏎️ ¡Sábado de descuentazos en moda, motor y ocio!
Arrancamos el fin de semana con un auténtico bombazo: la gorra oficial de McLaren por solo 9€ y vaqueros Jack & Jones a mitad de precio. Si buscas planes en casa, el Trivial Pursuit clásico está rebajado y tenemos un pack de pinturas acrílicas completísimo por menos de 9€. Además, no te pierdas el 70% de descuento en la segunda unidad para productos del coche y el ahorro básico en alimentación con el pack de caldos Gallina Blanca. ¡Chollos para todos los gustos! 👖🎲
👇 Selección del día:
🔥 New Era Gorra McLaren por 9,00€ (-73% dto)
🔗https://amzn.to/48vMInV
🔥 Jack & Jones Pantalones Vaqueros por 14,90€ (-50% dto)
🔗https://amzn.to/4c5uUkr
🔥 Trivial Pursuit Clásico por 27,90€ (-32% dto)
🔗https://amzn.to/4sQUCAm
🔥 24 Pinturas Acrílicas + 4 Pinceles por 8,90€ (con cupón)
🔗https://amzn.to/4c5rtdP
🔥 2ª ud -70% en productos para el Coche
🔗https://amzn.to/41N9uUx
🔥 Pack 3 Caldo Gallina Blanca por 3,00€ (-59% dto)
🔗https://amzn.to/4tlrIZc
#McLaren#ModaHombre#Trivial#OfertasAmazon#Ahorro
📲 No te pierdas ni uno, síguenos en directo:
🔗https://whatsapp.com/channel/0029VbB9FRYEQIafeiqslX2F
🌟 Introducing McLaren's most affordable mode of transport - the electric scooter!
Crafted in collaboration with scooter manufacturer Pure Electric.
✨ The Pure x McLaren is available in three design variants. It can accelerate to 25 km/h and travel up to 50 km. Weighing 16 kg, this foldable McLaren scooter can carry a rider weighing up to 120 kg.
💰 Prices range from £900 to £1200.
#McLaren#ElectricScooter#PureElectric#Auto
🚗✨ Exciting news from McLaren! On October 6th, we might witness the unveiling of a brand new model that continues the legendary "1" lineage! 🌟
In a teaser video featuring the iconic F1 and P1, the date at the end hints at a thrilling reveal. 🔥
This hybrid supercar is set to deliver around 1000 hp, powered by a stunning V8 engine. 💪💨
Get ready for the next chapter in automotive excellence!
#McLaren#Supercar#HybridPower#ComingSoon#October6#Auto
🏎️✨ Historic F1 Auction Alert! 🌟🔨
Get ready, motorsport fans! The iconic McLaren-Mercedes MP4-21 is hitting the auction block! 🏁💰
This legendary car, designed by the brilliant Adrian Newey, marks his last project with McLaren before joining Red Bull Racing. 🚀🔧
Driven by the incredible Juan Pablo Montoya in Bahrain, Australia, and Malaysia, and tested by the one and only Lewis Hamilton in Elvington and Jerez, this 2006 model holds a unique place in F1 history! 🏆🇬🇧
Experts estimate this masterpiece could fetch up to $3.5 million!💵🔥 Don’t miss your chance to own a piece of racing history!
#F1#McLaren#MP421#LewisHamilton#JuanPabloMontoya#Auction#MotorsportHistory#Auto🏎️💨🌍