Что делать если нужно поставить какую-то 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
🎉А вот и наши итоги 2022 года!
Мы хорошо поработали и нам есть чем гордиться:
⚡️ Постоянно растущая команда квалифицированных инженеров
⚡️ Новые заказчики по всему миру - от стартапов до мировых брендов
⚡️ Сотни новых проектов
🎓 А еще наш учебный центр DSR вышел на международный уровень и начал работать в Португалии и Узбекистане.
🧠 Также, важным достижением для нас стало присоединение к The Linux Foundation и Hyperledger Foundation.
Уверены, что 2023 год станет таким же успешным и плодотворным для нашей команды! 📈
#DSR#DoingSoftwareRight#softwaredevelopment
🧠 Новая статья на Medium от нашей QA-команды — Building Reliable Software: How to Stop Common Bugs Before They Appear!
В ней мы разбираем:
• почему раннее выявление ошибок экономит недели разработки,
• как небольшие недочёты могут перерасти в доработки и задержки,
• пошаговые практики, которые помогают ловить баги ещё до релиза.
🔥 Отличный разбор от Анны Шатковской, DSR Principal QA Engineer, и нашей QA-команды — максимально прикладной опыт о том, как делать софт надежным!
📖Читать статью
🗣 Статья на английском языке
#QA#SoftwareDevelopment
💥Наша прекрасная Рената Токтар, Lead Software Engineer, выступит на XXIII Международной конференции "Информатика: проблемы, методы, технологии" им. Э.К. Алгазинова 1️⃣5️⃣февраля
👩💻Ее тема: Блокчейн стартапы. Современные методологии разработки: Agile VS Kanban.
📣Программа конференции опубликована на сайте @cs_vsu (факультета компьютерных наук ВГУ.)
Технологическая секция, на которой будет выступать Рената, пройдет с ⏰14.00 до 18.00.
Ссылку на трансляцию в YouTube мы оставим в комментариях.
#DSR#DoingSoftwareRight#softwaredevelopment#DSR_team#dsr_blockchain#dsr_ssi
JetBrains has officially joined the .NET Foundation as a sponsor
JetBrains, a leading name in the software development industry, has officially joined the .NET Foundation as a sponsor. For over 20 years, JetBrains has been at the forefront of creating innovative tools for .NET developers. Their commitment to supporting developers and fostering a thriving ecosystem is truly commendable.
This partnership highlights the importance of a vibrant and active developer community.
With JetBrains providing complimentary licenses for open-source contributors and launching the OSS Power-Ups initiative, .NET developers now have even greater opportunities to enhance their projects and build a stronger, more connected open-source future.
We at MDC Uzbekistan are excited to follow this new chapter and look forward to seeing the incredible innovations that will emerge from this collaboration. Kudos to both JetBrains and the .NET Foundation for paving the way for an even brighter future for the .NET community!
Don’t forget to follow JetBrains and .NET Foundation for more updates on this remarkable journey!
#DotNETFoundation#JetBrains#Partnership#Innovation#SoftwareDevelopment#OpenSource#Community
@mdcuzbekistan
🚀 AI TRENDS | Tether Launches QVAC SDK for Cross-Platform AI Development
Tether has introduced the QVAC SDK, a unified software development kit designed to enable developers to build, run, and fine-tune AI applications directly on any device. According to Foresight News, this SDK ensures consistency across different environments.
Applications developed using the QVAC SDK can seamlessly operate on platforms such as iOS, Android, Windows, macOS, and Linux. The same codebase can function across all supported environments without the need for platform-specific branches, rewrites, or conditional logic.
The QVAC SDK is built on QVAC Fabric, a branch of llama.cpp, offering broad compatibility with the llama.cpp model ecosystem for text generation, embedding, and multimodal workloads.
#AI#SDK#CrossPlatform#MachineLearning#LlamaCpp#SoftwareDevelopment#Multimodal#QVAC
🔝Интересуешься IoT?
У нас есть классная лекция про интернет вещей (IoT) и его перспективы от нашего Senior Software Engineer Александра Воронова.
Содержание:
✔️Определение интернета вещей,
✔️Область применения IoT,
✔️Беспроводные протоколы для создания IoT-сетей,
✔️Уровни приложения популярных протоколов.
▶️https://youtu.be/pHcvCP2t87c
❗️лекция на английском языке.
Александр работает в DSR более 10 лет. Специализируется на интернете вещей и беспроводных протоколах. Участвовал в разработке собственных продуктов компании, включая стеки протоколов Bluetooth и Zigbee, а также различных Zigbee-контроллеров для умного дома. Сейчас Александр работает в основном с сетями на базе протокола Thread.
#IoT#SoftwareDevelopment#WirelessProtocols#ThreadNetworks#DSRCorporation#FreeLecture#TechEnthusiasts#dsr_training_center
🚀 AI TRENDS | Claude Unveils Managed Agents for Efficient Deployment
Claude has introduced Managed Agents, a new feature designed to support large-scale agent construction and deployment. According to Foresight News, this product combines an optimized agent framework with production-grade infrastructure, enabling developers to swiftly transition their agent products from prototype to official launch in just a few days. Managed Agents are currently in public testing on the Claude platform.
#AI#Claude#ManagedAgents#AgentDeployment#TechTrends#ForesightNews#AIPlatforms#SoftwareDevelopment#Innovation#PublicTesting
MCP Revolutionizes AI Tool Integration
MCP by Anthropic standardizes AI agents and tools, tackling fragmentation. Over 1,000 MCP servers created, including from companies like Slack and Docusign. Enables seamless functions like airline ticket booking through agents on varied platforms. Supports agent-server chains for contextual decision-making, fostering a cyber-economy where servers and agents can transact. A promising structure for future AI products aiming to innovate search and indexing on MCP rails.
👉 More on MCP: modelcontextprotocol
👉 Join the accelerator for product development: dagihouse
#AI#MCP#CyberEconomy#Agents#TechInnovation#SoftwareDevelopment#LLM#Decentralization#Integration#Protocols#DataScience#Research#OpenSource#Finance#Booking#Travel#Server#Economy