Что делать если нужно поставить какую-то 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
🌐Xalqaro moliya korporatsiyasi (IFC) mintaqaviy vakillari bilan uchrashuv
🇺🇿 Biznes va tadbirkorlik oliy maktabida IFC vakillari bilan uchrashuv bo‘lib o‘tdi. Uchrashuv davomida tomonlar biznes-ta’lim sohasidagi hamkorlik istiqbollari, barqaror rivojlanish tamoyillarini ilgari surish, ESG standartlarini joriy etish, xalqaro tavsiyalar va ilg‘or jahon tajribasiga asoslangan korporativ boshqaruvni takomillashtirish masalalarini muhokama qildilar.
🟢 IFCning ta’lim tashabbuslari kompaniya rahbarlari uchun boshqaruv va yetakchilik ko‘nikmalarini rivojlantirish hamda xususiy sektor ehtiyojlariga mos o‘quv dasturlarini ishlab chiqishga alohida e’tibor qaratadi.
💠 Yakunida tomonlar qo‘shma ta’lim dasturlarini ishlab chiqish va ESG tamoyillarini O‘zbekiston biznes muhitiga integratsiya qilishni qo‘llab-quvvatlash maqsadida keyingi chora-tadbirlarni muvofiqlashtirish bo‘yicha kelishuvga erishdilar.
📝Batafsil
🇷🇺RU
🇬🇧ENG
#GSBE#GraduateSchool#IFC#ESG#Cooperation#Meeting
🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube
17 мая в отеле Courtyard by Marriott Tashkent состоялся интерактивный тренинг по привлечению инвестиций и обслуживанию новых и действующих инвесторов со стороны международного эксперта Роберта Хайзака. Тренинг проводился в рамках проекта IFC, поддерживаемого правительством Японии. В мероприятии приняли участие сотрудники Агентства стратегического развития при Президенте Республики Узбекистан, Министерства инвестиций и внешней торговли и Агентства по привлечению иностранных инвестиций при МИВТ РУз. В ходе мероприятия обсуждались способы привлечения инвесторов, формирование совместных предприятий, принципы работы CRM-системы, а также меры по решению возникающих вопросов. В конце тренинга участники получили ответы на интересующие их вопросы.
#ifc#training#ipa#uzipa
Международный клуб дружбы Ленинградской области открыл для себя историю железнодорожного транспорта! 🚂
Участники МКД47 посетили Музей РЖД в Санкт-Петербурге, где познакомились с богатой историей железных дорог России. Гости смогли увидеть уникальные экспонаты, узнать о развитии железнодорожного транспорта и его важной роли в становлении нашей страны.
В ходе экскурсии иностранные участники клуба из разных стран получили возможность погрузиться в атмосферу прошлого и настоящего российского железнодорожного транспорта. Особенно впечатляющими стали старинные паровозы, исторические вагоны и современные локомотивы.
In English in the comments
#ВФМ#МКД#МеждународныйКлубДружбы#МКД47#WYF#IFC#InternationalFriendshipClub#IFC47
🔔 PikTools Генплан: Ваш DWG → 3D-модель + IFC по стандартам Москвы
Мы сделали генплан не просто чертежом, а полноценным цифровым двойником, который понимают все — от архитекторов до сетевиков. И да, он уже соответствует требованиям Москомархитектуры.
Технология работы:
✅ Из обычного DWG — в 3D-генплан и IFC
▪️Автоматическое построение объёмной модели прямо в Civil 3D
▪️Экспорт в формат IFC строго по структуре ЦИМ АГР, утверждённой для города Москва.
✅ Смежники скажут спасибо
Ваша модель становится основой для:
▪️Проверок коллизий АР-ГП (архитектура vs генплан)
▪️Проверок коллизий ГП-НС (генплан vs наружные сети)
▪️Выдаётся как задание смежным проектным командам с понятным объёмным представлением классического генплана.
✅ Что это даёт на практике?
▪️Архитекторы видят реальные отметки и привязки зданий.
▪️Сетевики сразу определяют зоны прокладки коммуникаций.
▪️Все работают с единой цифровой моделью, а не с клочками чертежей.
Хотите, чтобы ваш генплан стал центром BIM-координации?
🌐Запросите триал версию продукта PikTools Генплан демонстрацию на сайте
👍Подписывайтесь на наш новый канал по продукту
❤️Ставьте лайки и комментарии к видео справке продукта
🎞Смотреть как продукт делает 3D генплан и IFC
#PikTools#Генплан#BIM#ЦИМ#Москва#IFC#3Dмоделирование#Коллизии#АР_ГП#ГП_НС#Автоматизация#Civil3D#BIMteam
#cplusplus#3mf#android#asset_pipeline#assets#assimp#c_plus_plus#collada#dae#fbx#fbx_exporter#game_development#gamedev_tool#gamedevelopment#gltf#gltf2#ifc#patreon#python#stl
The Open Asset Import Library (Assimp) is a tool that helps load many different 3D file formats into a common format. It supports over 40 formats for importing and several for exporting. Assimp works on various platforms like Windows, macOS, Linux, Android, and iOS. It also provides tools to improve the 3D models, such as fixing errors and making them look better. This library is useful for developers because it simplifies working with different 3D file types, making it easier to create and manage 3D content across different systems.
https://github.com/assimp/assimp