Что делать если нужно поставить какую-то 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
📰 Mercedes, Audi, Volvo, Polestar and Renault have refused to implement CarPlay Ultra
🙅♂️ The automakers have said they have no intention of giving Apple access to their full vehicle management systems and would rather work on their own.
🚘 Right now, only Aston Martin offers CarPlay Ultra in its cars.
🔧 Hyundai, Kia and Genesis and Porsche are already working on implementation. Other initially announced brands such as Ford and Nissan have not provided any data on their CarPlay Ultra plans.
#CarPlay@Car_News
📰 Mercedes, Audi, Volvo, Polestar и Renault отказались от внедрения CarPlay Ultra
🙅♂️ Автопроизводители заявили, что не намерены давать доступ Apple к своим системам полного управления автомобилем и предпочтут работать самостоятельно.
🚘 На данный момент только Aston Martin предлагает CarPlay Ultra в своих автомобилях.
🔧 Hyundai, Kia и Genesis, а также Porsche уже работают над внедрением. Другие первоначально заявленные бренды, такие как Ford и Nissan, не предоставили никаких данных о своих планах по внедрению CarPlay Ultra.
#CarPlay@avtoNovosti
🚙 Mercedes-Benz has refused to use next-generation Apple CarPlay in its cars
This was announced by Mercedes-Benz CEO Ola Källenius on The Verge's Decoder podcast. According to him, the car's operating system is now responsible not only for infotainment functions, but also for autonomous driving, chassis, battery performance and many other components, so creating a "superior customer experience" is only possible when all aspects are the responsibility of the manufacturer.
Even though Apple announced Mercedes-Benz as its partner at the launch of the new CarPlay back in 2022, the auto giant plans to develop its own operating system. Mercedes' next-generation OS is scheduled to debut in 2025.
Meanwhile, support for first-generation CarPlay, which is a small add-on for controlling multimedia in the car, will remain in Mercedes cars.
@CarsNews
#Mercedes#carplay
🚙 Mercedes-Benz отказался от использования Apple CarPlay в своих автомобилях нового поколения
Об этом сообщил генеральный директор Mercedes-Benz Ола Каллениус в подкасте Decoder от Verge. По его словам, операционная система автомобиля теперь отвечает не только за информационно-развлекательные функции, но и за автономное вождение, шасси, работу аккумулятора и многие другие компоненты, поэтому создание "превосходного потребительского опыта" возможно только тогда, когда за все аспекты отвечает сам производитель.
Несмотря на то, что Apple объявила Mercedes-Benz своим партнером при запуске новой CarPlay еще в 2022 году, автогигант планирует разработать собственную операционную систему. Дебют нового поколения ОС Mercedes запланирован на 2025 год.
Между тем, поддержка первого поколения CarPlay, представляющего собой небольшое дополнение для управления мультимедиа в автомобиле, сохранится в автомобилях Mercedes.
@avtoNovosti
#Mercedes#CarPlay
古尔曼:特斯拉仍在积极适配苹果 Carplay,目前正解决 Apple Maps 兼容性问题
彭博社记者马克古尔曼表示,特斯拉仍在积极为旗下汽车适配苹果CarPlay车联体验。早在去年11月,古尔曼曾透露特斯拉正在适配苹果Carplay,有望未来几个月内完成相关工作。古尔曼解释说,特斯拉车机地图应用的转向建议导航无法与Apple Maps同步,因为理论上两款地图应用可以同时打开。
标签:#特斯拉#CarPlay
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot
🚘Aston Martin have shared a special launch video to celebrate the launch of CarPlay Ultra
📰 Apple is officially rolling out the next generation of CarPlay – and it’s called CarPlay Ultra. The update is available with new Aston Martin vehicle orders in the US and Canada, but it will be rolling out to existing models with supported infotainment systems in the “coming weeks.” Carmakers like Hyundai, Kia, and Genesis are also working on adding CarPlay Ultra, according to Apple.
Aston Martin is delighted to have collaborated with Apple and to be first to launch CarPlay Ultra. As a brand, our focus on world-leading performance goes beyond the traditional attributes associated with powertrains, dynamic performance, and craftsmanship. The integration of CarPlay Ultra is a clear example of the dedication to collaborate with the best companies in the world to bring unique experiences and in-vehicle capabilities to our customers. Building on our in-house state-of-the-art infotainment system, CarPlay Ultra will provide additional functionality and personalization opportunities, which place Aston Martin at the forefront of infotainment in the sector.
– said Adrian Hallmark, Aston Martin’s CEO.
#AstonMartin#CarPlay@Car_News
🚘 Aston Martin выпустила специальное видео в честь запуска CarPlay Ultra
📰 Apple официально представила следующее поколение CarPlay – и оно называется CarPlay Ultra. Обновление доступно при заказе новых автомобилей Aston Martin в США и Канаде, но оно будет распространяться и на существующие модели с поддерживаемыми информационно-развлекательными системами в «ближайшие недели». По словам Apple, такие автопроизводители, как Hyundai, Kia и Genesis, также работают над добавлением CarPlay Ultra.
Aston Martin рад сотрудничеству с Apple и возможности первым запустить CarPlay Ultra. Как бренд, мы ориентируемся на ведущие мировые характеристики, выходящие за рамки традиционных атрибутов, связанных с силовыми агрегатами, динамическими характеристиками и мастерством исполнения. Интеграция CarPlay Ultra - яркий пример стремления сотрудничать с лучшими компаниями в мире, чтобы предоставить нашим клиентам уникальные возможности и опыт использования автомобиля. Опираясь на нашу собственную современную информационно-развлекательную систему, CarPlay Ultra обеспечит дополнительную функциональность и возможности персонализации, что позволит Aston Martin занять лидирующие позиции в секторе информационно-развлекательных систем.
– сказал Адриан Холлмарк, генеральный директор Aston Martin.
#AstonMartin#CarPlay@avtoNovosti